Differences between revisions 4 and 31 (spanning 27 versions)
Revision 4 as of 2019-03-13 20:01:25
Size: 408
Editor: PieterSmit
Comment:
Revision 31 as of 2020-06-22 22:57:31
Size: 3411
Editor: PieterSmit
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Kubernetes/helm
## page was renamed from kubernetes/helm
Line 2: Line 4:
 Links: [[Azure/Kubernetes]]  Links: [[k8s/Azure]] , [[k8s/Monitoring]] , [[k8s/helm/HelmV2ToV3]] , https://lzone.de/blog/Helm-Best-Practices , [[https://github.com/zendesk/helm-secrets| encrypt secrets]], [[k8s/helm/secrets]]
Line 4: Line 6:
== Helm3 2020-04 ==
 1. On local chart (main deployment of all components)
    1. helm repo index .
       * This index's charts under ./charts and create a new ./index.yam
    1. helm repo add stable https://kubernetes-charts.storage.googleapis.com/
    1. helm repo add

== Helm setup 2020-01 ==
 1. Create a dir and add Chart.yaml with version and maintainer.
 2. Create requirements.yaml file with external charts needed
    * search for versions with {{{$ helm search -l stable/rabbitmq-ha }}}
 3. Install local charts from google with {{{$ helm dependency update }}}
 4. Verify with {{{$ helm dependency list }}}


== Install 2019-03 ==
 * Ran official curl, and get_helm, all fine
 * When deploying chart got an error, tiller not allowed to create namespaces.
 * Fixed with command belown and helm init --upgrade {{{{{
kubectl create serviceaccount --namespace kube-system tiller
 # serviceaccount "tiller" created

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
 # clusterrolebinding "tiller-cluster-rule" created

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
 # deployment "tiller-deploy" patched

}}}}}

== 201903 add ingress and static ip ==
 
 1. Get k8s nodeResourceGroup grom gui or with {{{
az aks show --resource-group <rgK8S> --name <clusterName> --query nodeResourceGroup -o tsv
}}}
 1. provision static ip with {{{
az network public-ip create --resource-group <MC_K8S_from_above> --name <cluster-PublicIP> --allocation-method static
}}}
 1. assign ip to nginx ingress controller {{{
helm install stable/nginx-ingress -namespace kube-system --set controller.service.loadBalancerIP="52.23.23.32" --set controller.replicaCount=2
}}}

== Run 2019-02 ==
Line 11: Line 56:
 * helm history p1
 * helm rollback p1 3; roll back to version 3
Line 16: Line 63:


=== Tricks ===
 * Use checksum of config map to change app annotation and force a new version to be deployed for apps that do not pick up new configs.
   * https://helm.sh/docs/developing_charts/#hooks
   * https://youtu.be/WugC_mbbiWU?t=1043
 * hooks {{{
annotation:
  "helm.sh/hook": " "
}}}
=== HELM install/uninstall ===
 * Please look for official current documentation {{{
helmins() {
 kubectl -n kube-system create serviceaccount tiller
 kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
 helm init --service-account=tiller
}
helmdel() {
 kubectl -n kube-system delete deployment tiller-deploy
 kubectl delete clusterrolebinding tiller
 kubectl -n kube-system delete serviceaccount tiller
 
}
}}}
----
CategoryK8sKubernetes

Kubernetes helm chart notes

Helm3 2020-04

  1. On local chart (main deployment of all components)
    1. helm repo index .
      • This index's charts under ./charts and create a new ./index.yam
    2. helm repo add stable https://kubernetes-charts.storage.googleapis.com/

    3. helm repo add

Helm setup 2020-01

  1. Create a dir and add Chart.yaml with version and maintainer.
  2. Create requirements.yaml file with external charts needed
    • search for versions with $ helm search -l stable/rabbitmq-ha 

  3. Install local charts from google with $  helm dependency update 

  4. Verify with $  helm dependency list 

Install 2019-03

  • Ran official curl, and get_helm, all fine
  • When deploying chart got an error, tiller not allowed to create namespaces.
  • Fixed with command belown and helm init --upgrade

    kubectl create serviceaccount --namespace kube-system tiller
     # serviceaccount "tiller" created
    
    kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
     # clusterrolebinding "tiller-cluster-rule" created
    
    kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' 
     # deployment "tiller-deploy" patched

201903 add ingress and static ip

  1. Get k8s nodeResourceGroup grom gui or with

    az aks show --resource-group <rgK8S> --name <clusterName> --query nodeResourceGroup -o tsv
  2. provision static ip with

    az network public-ip create --resource-group <MC_K8S_from_above> --name <cluster-PublicIP> --allocation-method static
  3. assign ip to nginx ingress controller

    helm install stable/nginx-ingress  -namespace kube-system  --set controller.service.loadBalancerIP="52.23.23.32"  --set controller.replicaCount=2

Run 2019-02

  • helm install --name p1 git/helmchart/ --namespace piet --set "env=DEV" --timeout 600
  • Run: helm ls --all p1; to check the status of the release
  • run: helm del --purge p1; to delete it
  • helm status p1
  • helm history p1
  • helm rollback p1 3; roll back to version 3
  • helm rollback; to last successfully DEPLOYED revision
  • helm upgrade --debug --dry-run
  • helm upgrade --install

Tricks

HELM install/uninstall

  • Please look for official current documentation

    helmins() {
     kubectl -n kube-system create serviceaccount tiller
     kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
     helm init --service-account=tiller
    }
    helmdel() {
     kubectl -n kube-system delete deployment tiller-deploy
     kubectl delete clusterrolebinding tiller
     kubectl -n kube-system delete serviceaccount tiller
     
    }


CategoryK8sKubernetes

k8s/helm (last edited 2022-08-02 02:27:36 by PieterSmit)