OpenWebinars

DevOps

Cómo crear un Chart con Helm

¿Quieres comenzar a crear tu primera aplicación de Helm? Aquí te detallamos el proceso paso a paso para que seas capaz de realizar tu propio Chart utilizando la herramienta Helm.

Ignacio Millán García

Ignacio Millán García

EXPERTO DEVOPS

Lectura 1 minutos

Publicado el 22 de julio de 2019

Compartir

    Tabla de contenidos

¿Quieres comenzar a crear tu primera aplicación de Helm? Aquí te detallamos el proceso paso a paso para que seas capaz de realizar tu propio Chart utilizando la herramienta Helm.

Qué son los charts

Antes de comenzar, vamos a explicar qué son los charts y sus características:

  • Así es como se llaman las aplicaciones en la herramienta Helm, y un chart es simplemente una aplicación que se puede instalar en cualquier clúster.
  • Los charts se componen fundamentalmente de ficheros YAML de Kubernetes, es decir, de objetos de Kubernetes, como puede ser un deployment, un service, un ingress, etc., todos los objetos necesarios para desplegar la aplicación.
  • Estos archivos YAML se pueden templatizar con el leguaje Go, ya que se pueden incluir partes dinámicas que se pueden ser personalizadas por el usuario a la hora de despegar la aplicación en el clúster.
  • Se pueden reutilizar los YAML que ya se tienen desplegados, es decir, si ya se tiene una aplicación en formato de objetos de Kubernetes se pueden reutilizar esos archivos para incluirlos en un chart de Helm.
  • Hay algunos archivos con metadatos que siempre se deben incluir en un chart, ya que si no no es posible empaquetarlo para Helm, como son:
    • Chart.yaml: que incluye toda la información acerca del nombre, la descripción y la versión, por ejemplo, de la aplicación que se contiene en ese paquete.
    • values.yaml: aquí se definen los valores por defecto de la aplicación, ya que es necesario definir los valores que se pueden personalizar a la hora de desplegar la aplicación, hay que asignarles siempre un valor por defecto, de forma que si los usuarios no quieren personalizar nada para instalar la aplicación, puedan hacerlo también.
    • README.md: en el mismo se incluye una explicación de todos los values personalizables y los comandos para instalar y utilizar la aplicación de forma sencilla.

Estructura de un chart

Un chart internamente tiene un árbol de directorios como el siguiente:

Imagen 0 en Cómo crear un Chart con Helm

Tiene una carpeta llamada templates, en la que se incluyen los YAML con los objetos de Kubernetes necesarios para la aplicación, y en el que también se pueden incluir otros archivos, como por ejemplo un NOTES.txt también templatizado, en el que se exponen algunas notas para el usuario que instale la aplicación, y que aparecen al finalizar la instalación de la misma.

Fuera de ese directorio templates tenemos los archivos Chart.yaml y el values.yaml, además de también el README.md.

Cómo crear un chart

Helm incluye una funcionalidad para crear los charts de forma sencilla con este comando:

helm create <NOMBRE DEL CHART>

De esta forma se crea una estructura para comenzar con el nombre que le queramos dar, además de los objetos más comunes en Kubernetes que se van a necesitar para toda aplicación, como son deployment o un service, ya personalizados y con buenas prácticas.

Además se pueden personalizar estas plantillas con starters y Helm permite descargar otro tipo de templates. Por ejemplo si queremos desplegar una aplicación stateful, ya existen templates para ello que ofrecen toda la estructura y las buenas prácticas necesarias para poder empezar rápidamente con ello.

Templates

Acerca de los templates, podemos destacar algunos aspectos de los mismos:

  • Utilizan el lenguaje Go para personalizar algunas partes de los YAML
  • Los values son los parámetros con los que se pueden personalizar las partes dinámicas de los mismos.
  • Este lenguaje es muy sencillo, simplemente el código dinámico va entre dos llaves siempre, y tiene todo tipo de comandos, como son condicionales if-else, bucles, definición de variables, etcétera, en resumen todo lo necesario para personalizar el YAML de forma sencilla.
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Curso de Helm

Avanzado
3 h. y 6 min.

Simplifica el uso de Kubernetes con su gestor de paquetes por excelencia. Aprenderás cómo instalar aplicaciones complejas con...

Ignacio Millán García
4.4