- Helm Workshop
- Tabla de Contenidos
- Bienvenidos al Workshop
- Requisitos Previos
- Ejercicios del Workshop
- 1. Instala una aplicación con Kubernetes Manifest
- 2. Instala WordPress con Helm
- 3. Convierte aplicación de Kubernetes manifest a Chart
- 4. Conviértelo en un Chart parametrizado
- 6. Modifica el Chart y Haz Upgrade
- 7. Haz Rollback a la versión anterior
- 8. Utiliza Template Functions
- 9. Utiliza Flow Controls
- 10. Aplica Configuraciones por entornos
- Ejercicios Bonus
En este workshop aprenderás los fundamentos de Helm y cómo utilizarlo para gestionar despliegues declarativos en Kubernetes. A través de ejercicios prácticos, explorarás cómo simplificar y automatizar la implementación de aplicaciones en tu cluster.
Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:
- Instalar Helm: Guía de instalación oficial
- Configurar un cluster local: Puedes usar Minikube o el cluster de Kubernetes que viene con Docker Desktop.
- Tener instalado Git: Guía de instalación
Importante:: Ten a la mano Helm Cheat Sheet durante el workshop.
- En la carpeta k8s_webapp_color/ están los manifiestos a instalar.
- Usa
kubectl applypara implementarlo en tu cluster. - Explora cómo se ve el recurso creado usando
kubectl getykubectl describe
Usaremos un chart oficial para instalar WordPress. Ejecuta los siguientes comandos:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpressPrueba cambiar configuraciones como credenciales:
helm install my-wordpress2 bitnami/wordpress --set wordpressUsername=xxxx --set wordpressPassword=xxxx3.1 Crea un nuevo chart usando:
helm create webapp_color_chart3.2 Explora la estructura del chart
generada y sus componentes principales (values.yaml, templates/*, etc.).
3.3 Convierte los manifests a templates
Elimina los archivos en templates/* y copia los manifiestos desde la carpeta k8s_webapp_color/. La estructura resultante será:
webapp_color_chart
├── Chart.yaml
├── charts
├── templates
│ ├── configmap.yaml
│ ├── deployment.yaml
│ └── service.yaml
└── values.yaml3.4 Ahora procedamos a instalar la aplicación con el Chart
- Primero debes desinstalar la aplicación creada con los manifests
- Usa este comando para instalar el chart:
helm install my-app ./webapp_color_chart- Verifica el estado de la aplicación:
kubectl get pod,svcUsa variables como la imagen, el número de réplicas, o etiquetas.
- image: {{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}Comandos útiles:
helm template my-app ./webapp_color_chart
helm lint ./webapp_color_chart
helm show values ./webapp_color_chart
helm upgrade my-app ./webapp_color_chartRevisa Helm Cheat Sheet y ejecuta más comandos y comparte con la comunidad.
Cambia configuraciones en values.yaml y observa los cambios en el cluster:
helm upgrade my-app ./webapp_color_charthelm history my-app
helm rollback my-app <revision>Aprende a usar funciones como required, default y formateo de strings.
Modifica webapp_color_chart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-config
data:
key: {{ .Values.myKey | default "defaultValue" }}Crea templates con lógica condicional:
{{- if .Values.createConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-config
data:
key: value
{{- end }}Vamos a instalar la aplicación simulando la instalación en dos ambientes. dev y prod. 10.1 Crea un Namespace por ambiente: dev y prod
kubectl create ns dev
kubectl create ns prod10.2 Usar configuraciones específicas por entorno Crea y edita los archivos en el directorio config/:
- config/dev.yaml
- config/prod.yaml
10.3 Instala la aplicación en distintos entornos
helm install my-app ./webapp_color_chart -n dev -f config/dev.yaml
helm install my-app ./webapp_color_chart -n prod -f config/prod.yaml10.4 Utiliza los comandos kubectl para comprobar
Usa GitHub Pages o genera un índice de repositorio:
helm repo index . --url https://<tu-usuario>.github.io/<tu-repositorio>Añade el repo a Helm:
helm repo add my-repo https://<tu-usuario>.github.io/<tu-repositorio>
helm search repo my-repoHaz los ajustes necesarios para habilitar instalaciones múltiples.
¡Buena suerte con el workshop!