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