Talm, un gestor de configuración para Talos Linux

Talos-Linux

Los desarrolladores de Cozystack, una plataforma PaaS gratuita, han lanzado el proyecto Talm. Este proyecto está diseñado para simplificar la configuración de servidores bare-metal para Talos Linux, un sistema operativo utilizado para ejecutar Kubernetes.

Talos Linux comparte una API similar a la de Kubernetes y se configura mediante un único manifiesto YAML. Aunque inicialmente se diseñó para describir una instalación declarativa de Cozystack, Talm no está limitado a esta plataforma y puede ser utilizado para administrar cualquier configuración de Talos Linux. 

La necesidad de desarrollar un administrador de configuración específico para Talos Linux surgió debido al enfoque en servidores bare-metal. Los desarrolladores tenían como objetivo crear una interfaz sencilla y familiar para los administradores de Kubernetes, similar a Helm y kubectl.

Al desarrollar Talm, se enfocó en lograr los siguientes objetivos:

  • Descubrimiento Automático: En entornos bare-metal, la información de cada servidor puede variar, como discos e interfaces de red. Talm facilita el descubrimiento automático de nodos, utilizándolo luego para generar parches de configuración.
  • Facilidad de Personalización: Los usuarios pueden personalizar plantillas para crear configuraciones únicas según su entorno. Estas plantillas utilizan la sintaxis de plantillas estándar de Go, mejorada con la lógica de plantillas de Helm ampliamente conocida.
  • Compatibilidad con GitOps: Los parches generados no incluyen información confidencial, lo que permite almacenarlos en Git de forma abierta y sin cifrar. Para configuraciones completas, la opción “–full” proporciona una configuración completa compatible con Matchbox y otras soluciones.
  • Simplicidad de Uso: Ya no es necesario especificar opciones de conexión para cada servidor; estas se guardan junto con los resultados de la plantilla en un archivo separado. Esto facilita la aplicación de parches o configuraciones a varios nodos utilizando una sintaxis similar a “kubectl apply -f node1.yaml -f node2.yaml”.
  • Compatibilidad con talosctl: Se mantiene la compatibilidad con talosctl y otras herramientas oficiales, lo que permite a los usuarios utilizar las configuraciones obtenidas con Talm sin problemas.

Dado que cada servidor físico tiene una configuración única (direcciones MAC, interfaces y discos), se requiere un archivo de configuración separado para cada nodo. Talm proporciona un administrador simple que permite generar estos archivos de configuración de forma dinámica, basándose en la información recopilada, y actualizarlos de manera declarativa.

Para lograr esto, Talm utiliza la generación dinámica de archivos de configuración con una plantilla predefinida. Incluye ajustes preestablecidos “generic” y “cozystack” para mayor conveniencia. Durante la etapa de generación, Talm puede recopilar información de la API de Talos y utilizarla para crear las configuraciones necesarias. Estos archivos de configuración no contienen información confidencial, lo que facilita su almacenamiento y gestión en Git de forma declarativa.

En términos de estructura, Talm sigue el enfoque de Helm, utilizando el concepto de gráfico para describir plantillas que generan configuraciones. También admite funciones de búsqueda similares a Helm para consultar la API de Talos y recopilar metadatos adicionales, utilizando “go templates” y la biblioteca sprig para generar los archivos de configuración.

Modo de uso de Talm (ejemplo)

Para crear un nuevo archivo de arranque de nodo en Talos Linux, digamos que tiene dirección 1.2.3.4

Terminal
talm -n 1.2.3.4 -e 1.2.3.4 template -t templates/controlplane.yaml -i > nodes/node1.yaml

Esto sondea el nodo “1.2.3.4” a través de la API, generando un archivo de configuración listo para aplicarse con un solo comando:

Terminal
talm apply -f nodes/node1.yaml -i

En cada archivo de configuración creado por Talm, se incluye una línea de modelo que recuerda los puntos finales del nodo y las plantillas utilizadas. Esto simplifica su uso y actualización sin requerir opciones adicionales. Talm ofrece comandos similares a talosctl, como el panel interactivo para múltiples nodos:

Terminal
talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml

Y también permite obtener información específica, como la lista de rutas en el nodo “srv1”:

Terminal
talm get routes -f nodes/srv1.yaml

Si es necesario, los archivos de configuración pueden cargarse automáticamente en un servidor PXE independiente con la opción “–full”. Talm se alinea con las mejores prácticas de GitOps para una gestión eficiente y cómoda de la infraestructura bare-metal en Talos Linux.

Por otro lado, si estás interesado en poder conocer más al respecto, debes saber que el proyecto está desarrollado bajo la licencia MPL y puedes consultar los detalles en el siguiente enlace.


Discover more from Ready4Linux

Subscribe to get the latest posts to your email.

Entradas relacionadas

Deja un comentario