Skip to content

ricardofcarrion/helm_workshop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Helm Workshop

Tabla de Contenidos

Bienvenidos al Workshop

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.

Requisitos Previos

Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:

Importante:: Ten a la mano Helm Cheat Sheet durante el workshop.

Ejercicios del Workshop

1. Instala una aplicación con Kubernetes Manifest

  • En la carpeta k8s_webapp_color/ están los manifiestos a instalar.
  • Usa kubectl apply para implementarlo en tu cluster.
  • Explora cómo se ve el recurso creado usando kubectl get y kubectl describe

2. Instala WordPress con Helm

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/wordpress

Prueba cambiar configuraciones como credenciales:

helm install my-wordpress2 bitnami/wordpress --set wordpressUsername=xxxx --set wordpressPassword=xxxx

3. Convierte aplicación de Kubernetes manifest a Chart

3.1 Crea un nuevo chart usando:

helm create webapp_color_chart

3.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.yaml

3.4 Ahora procedamos a instalar la aplicación con el Chart

  1. Primero debes desinstalar la aplicación creada con los manifests
  2. Usa este comando para instalar el chart:
helm install my-app ./webapp_color_chart
  1. Verifica el estado de la aplicación:
kubectl get pod,svc

4. Conviértelo en un Chart parametrizado

Usa 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_chart

Revisa Helm Cheat Sheet y ejecuta más comandos y comparte con la comunidad.

6. Modifica el Chart y Haz Upgrade

Cambia configuraciones en values.yaml y observa los cambios en el cluster:

helm upgrade my-app ./webapp_color_chart

7. Haz Rollback a la versión anterior

helm history my-app
helm rollback my-app <revision>

8. Utiliza Template Functions

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" }}

9. Utiliza Flow Controls

Crea templates con lógica condicional:

{{- if .Values.createConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-config
data:
  key: value
{{- end }}

10. Aplica Configuraciones por entornos

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 prod

10.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.yaml

10.4 Utiliza los comandos kubectl para comprobar

Ejercicios Bonus

11. Publica el Chart en GitHub

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-repo

12. Permitir múltiples instalaciones en un mismo namespace

Haz los ajustes necesarios para habilitar instalaciones múltiples.

¡Buena suerte con el workshop!

About

Helm Workshop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors