Este sitio utiliza cookies para garantizar que obtenga la mejor experiencia en nuestro sitio web.

ArgoCD con Helm: por qué usar esta combinación y cómo funciona

¡Hola a todos! Hoy hablamos de ArgoCD y Helm, dos herramientas potentes y populares del ecosistema Kubernetes para desplegar y gestionar configuraciones de aplicaciones. La combinación desbloquea un nuevo nivel de productividad GitOps.

CloudScript Technology
14 de noviembre de 20244 min de lectura
ArgoCD con Helm: por qué usar esta combinación y cómo funciona

¡Hola a todos! Hoy vamos a hablar sobre ArgoCD y Helm, que son herramientas poderosas y populares en el ecosistema de Kubernetes para realizar deploys y gestionar configuraciones de aplicaciones. La combinación de ambas posibilita un flujo de trabajo eficiente y una manera fácil de aplicar cambios en los clusters Kubernetes.

Visión general

  • ArgoCD: es una herramienta de GitOps para Kubernetes que automatiza el deployment de aplicaciones, manteniendo el estado del cluster sincronizado con el repositorio Git.
  • Helm: es un gestor de paquetes para Kubernetes que simplifica la creación e instalación de aplicaciones en el cluster usando charts (plantillas de configuración).
Logos de ArgoCD y Helm

¿Por qué usar ArgoCD con Helm?

ArgoCD es una herramienta de GitOps que permite hacer deploys en Kubernetes usando repositorios Git como fuente de verdad. Sincroniza automáticamente el estado del cluster con lo que está definido en el repositorio. Helm, por su parte, es un gestor de paquetes para Kubernetes que facilita la instalación y gestión de aplicaciones usando templates y valores configurables, conocidos como Helm Charts. Cuando se combinan, ganas control y flexibilidad para gestionar el ciclo de vida de aplicaciones de forma centralizada y automatizada.

Cómo funciona ArgoCD con Helm

  1. Configuración del repositorio: primero, es necesario configurar ArgoCD para conectarse al repositorio Git donde están los Helm Charts.
  2. Configuración de la aplicación en ArgoCD: ArgoCD permite definir una aplicación que utiliza Helm Charts. Es posible especificar la ubicación del repositorio, la ruta del chart y los valores personalizados para la instalación.
  3. Deploy y sincronización: una vez configurada la aplicación, ArgoCD aplicará el chart en el cluster Kubernetes. Si hay cambios en los charts o en los valores, ArgoCD los detectará y podrá sincronizar automáticamente, manteniendo el entorno actualizado.

Configurando ArgoCD para usar Helm

Vamos a un ejemplo práctico de cómo configurar ArgoCD para trabajar con Helm Charts. Esto involucra definir una aplicación en ArgoCD que utiliza un Helm Chart, ya sea de tu propio repositorio o de una fuente pública.

Paso 1: Creando un Helm Chart

Si aún no tienes un chart configurado, puedes crear uno con el comando:

helm create minha-aplicacao

Este comando genera la estructura básica del Chart. En el directorio minha-aplicacao, tendrás carpetas y archivos como templates/, values.yaml, Chart.yaml, que son la base para personalizar y parametrizar tu deployment.

Paso 2: Configurando la aplicación en ArgoCD

En ArgoCD, creas una aplicación que apuntará a tu Helm Chart en Git, configurándola para actualizar automáticamente tu cluster. Si usas ArgoCD por la interfaz web o vía YAML, el principio es el mismo. Acá un ejemplo de cómo configurar una aplicación en ArgoCD que utiliza un Helm Chart:

piVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: minha-aplicacao
  namespace: argocd
spec:
  project: default
  source:
    repoURL: 'https://github.com/seu-usuario/seu-repositorio'
    targetRevision: main
    path: charts/minha-aplicacao
    helm:
      valueFiles:
        - values.yaml
      parameters:
        - name: replicaCount
          value: "3"
  destination:
    server: 'https://kubernetes.default.svc'
    namespace: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

En este ejemplo:

  • repoURL: el enlace del repositorio Git donde está el Helm Chart.
  • targetRevision: branch o tag del repositorio.
  • path: la ruta en el repositorio hasta el Helm Chart.
  • valueFiles: lista de los archivos de valores de Helm para personalizar el deployment.
  • parameters: parámetros que sobrescriben configuraciones en values.yaml.
  • syncPolicy: configuración para actualizar automáticamente y corregir discrepancias en el cluster.

Paso 3: Gestión y sincronización

Con ArgoCD configurado, puedes ver y monitorear el estado de tu aplicación vía interfaz web o CLI. Al hacer cambios en el repositorio Git (como actualizar el values.yaml), ArgoCD detectará automáticamente y hará la sincronización, aplicando los cambios en el cluster.

Sobrescribiendo parámetros con ArgoCD

Si necesitas ajustar rápidamente algún valor específico de Helm (como el número de réplicas, sin alterar el archivo values.yaml), puedes sobrescribir parámetros directamente en ArgoCD. Esto es útil para cambios temporales o personalizaciones rápidas.

Por ejemplo:

parameters:
  - name: image.tag
    value: "v1.2.3"

Con esta configuración, defines un nuevo valor para la tag de la imagen directamente en ArgoCD, sin alterar el Helm Chart o el values.yaml.

Ventajas de la integración ArgoCD + Helm

  • Automatización GitOps: con ArgoCD, todos los cambios realizados en el repositorio se reflejan automáticamente en el entorno.
  • Facilidad de personalización: Helm facilita la personalización y versionado de los parámetros de la aplicación, siendo un enfoque eficiente para entornos con múltiples clusters o diferentes configuraciones.
  • Rollback simplificado: ArgoCD y Helm facilitan el rollback de versiones, permitiendo una gestión segura y controlada de releases.

Conclusión

Combinar ArgoCD con Helm es una excelente elección para quienes quieren una solución robusta de CI/CD en Kubernetes, uniendo la flexibilidad de los Helm Charts con la automatización y monitoreo GitOps de ArgoCD. Este dúo puede simplificar bastante la gestión de aplicaciones, además de proporcionar una infraestructura de deploy segura y replicable.

Si ya estás usando esta configuración, ¡comparte tu experiencia! Sigamos con esta conversación e intercambiemos consejos sobre cómo optimizar aún más nuestros workflows en Kubernetes.

¡Hasta la próxima!


Referencias:

Helm. Documentación de Helm. Disponible en: https://helm.sh/pt/docs/.

Argo CD. Documentación de Argo CD. Disponible en: https://argo-cd.readthedocs.io/en/stable/.

Automatización de Infraestructura: herramientas esenciales para DevOps
¡Hola a todos! Hoy vamos a hablar de cómo la transformación digital aceleró la necesidad de que las empresas se adapten rápidamente a los cambios del mercado.

VER TAMBIÉN

Mantente al día

Recibe nuestros artículos sobre DevOps, Kubernetes, Platform Engineering y Cloud Native directamente en tu correo.

Sin spam. Cancela cuando quieras.