Helm basics
Instalacion
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
tar zxfv helm-v2.9.1-linux-amd64.tar.gz
cp linux-amd64/helm .
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
chmod 700 get_helm.sh && ./get_helm.sh
# 1 :: tiller sa AND bind clusterrole to the sa
kubectl -n kube-system create sa tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller
# 2 :: Elevar el privilegio de nuestro usuario
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value account)
# 2 :: Elevar privilegios para el pod tiller de helm
kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
# Configurar e inicilizar helm en el server
./helm init --service-account=tiller
./helm update
helm repo update
Algunas generalidades
./helm install -n cd stable/jenkins -f jenkins/values.yaml --version 0.16.6 --wait
Operaciones con Helm
kubectl config current-context
helm init --max-history 200
helm reset --remove-helm-home
Helm en K8S
helm repo update
helm search mysql
helm inspect values <chart-name>
helm inspect <chart-name>
# helm install stable/mysql
# helm install stable/mysql --dry-run --debug
helm install --name=mysql -f custom_config.yaml --tiler-namespace default stable/mysql
helm upgrade --name=mysql -f updated_config.yaml stable/mysql
helm history --name=mysql
helm rollback mysql 2
helm rollback mysql 0 # Rollback to the latest working release version
helm status mysql
Clean installed apps
helm uninstall aws-load-balancer-controller -n kube-system
Helm desarrollo
helm create mypackage
helm package mypackage
helm lint mypackage
Operaciones basicas
export NAMESPACE=devops
export HELM_NAME=jenkins
# Initialize an empty project
helm create . values.yaml
# Init helm and install chart
kubectl config current-context
kubectl get namespaces
helm install --namespace $NAMESPACE --name $HELM_NAME -f values.yaml .
# k8s info
kubectl get pods -n $NAMESPACE
kubectl get services -n $NAMESPACE
kubectl logs <PODNAME>
kubectl describe pods <podname> -n $NAMESPACE
# helm manage
helm list
helm del --purge $HELM_NAME