Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Creando Apps

Para una guía completa sobre el desarrollo de gráficos, consulta el Guía del desarrollador de plantillas de gráficos en la documentación oficial de Helm.

Tipos de gráficos

Rancher admite dos tipos diferentes de gráficos: gráficos de Helm y gráficos de Rancher.

Charts de Helm

Los gráficos de Helm nativos incluyen una aplicación junto con otro software necesario para ejecutarla. Al desplegar gráficos de Helm nativos, puedes proporcionar los valores de los parámetros del gráfico en un editor YAML.

Gráficos de Rancher

Los gráficos de Rancher son gráficos de Helm nativos con dos archivos que mejoran la experiencia del usuario: app-readme.md y questions.yaml. Lee más sobre ellos en Archivos adicionales para gráficos de Rancher.

Los gráficos de Rancher añaden descripciones simplificadas de gráficos y formularios de configuración para facilitar el despliegue de la aplicación. Los usuarios de Rancher no necesitan leer toda la lista de variables de Helm para entender cómo lanzar una aplicación.

Estructura del directorio de gráficos

Puedes proporcionar gráficos de Helm en un repositorio de Helm estándar basado en HTTP. Para más información, consulta el Guía del repositorio de gráficos en la documentación oficial de Helm.

Alternativamente, puedes organizar tus gráficos en un repositorio de Git y añadirlo directamente al mercado de aplicaciones.

La siguiente tabla demuestra la estructura del directorio para un repositorio de Git. El directorio charts es el directorio de nivel superior bajo la base del repositorio. Agregar el repositorio a Rancher expondrá todos los gráficos contenidos en él. Los archivos questions.yaml, README.md y requirements.yml son específicos para los gráficos de Rancher, pero son opcionales para la personalización del gráfico.

<Repository-Base>/
 │
 ├── charts/
 │   ├── <Application Name>/      # This directory name will be surfaced in the Rancher UI as the chart name
 │   │   ├── <App Version>/      # Each directory at this level provides different app versions that will be selectable within the chart in the Rancher UI
 │   │   │   ├── Chart.yaml      # Required Helm chart information file.
 │   │   │   ├── questions.yaml      # Form questions displayed within the Rancher UI. Questions display in Configuration Options.*
 │   │   │   ├── README.md         # Optional: Helm Readme file displayed within Rancher UI. This text displays in Detailed Descriptions.
 │   │   │   ├── requirements.yml  # Optional: YAML file listing dependencies for the chart.
 │   │   │   ├── values.yml        # Default configuration values for the chart.
 │   │   │   ├── templates/        # Directory containing templates that, when combined with values.yml, generates Kubernetes YAML.

Archivos adicionales para gráficos de Rancher

Antes de crear tu propio catálogo personalizado, deberías tener un entendimiento básico sobre cómo un gráfico de Rancher difiere de un gráfico nativo de Helm. Los gráficos de Rancher difieren ligeramente de los gráficos de Helm en sus estructuras de directorio. Los gráficos de Rancher incluyen dos archivos que los gráficos de Helm no tienen.

  • app-readme.md

    Un archivo que proporciona texto descriptivo en el encabezado de la interfaz de usuario del gráfico.

  • questions.yml

    Un archivo que contiene preguntas para un formulario. Estas preguntas del formulario simplifican el despliegue de un gráfico. Sin él, debes configurar el despliegue utilizando una configuración YAML de valores, lo cual es más difícil. Las siguientes imágenes muestran la diferencia entre un gráfico de Rancher (que incluye questions.yml) y un gráfico nativo de Helm (que no lo incluye).

questions.yml
Figure 1. Gráfico de Rancher con questions.yml
values.yaml
Figure 2. Gráfico de Helm sin questions.yml

Chart.yaml

Anotaciones

Rancher soporta anotaciones adicionales que puedes añadir al archivo Chart.yaml. Estas anotaciones te permiten definir dependencias de aplicaciones o configurar valores predeterminados adicionales de la interfaz de usuario:

Anotación Descripción Ejemplo

catalog.cattle.io/auto-install

Si se establece, instalará el gráfico especificado en la versión especificada antes de instalar este gráfico

other-chart-name=1.0.0

catalog.cattle.io/display-name

Un nombre de visualización que debería mostrarse en el mercado de aplicaciones en lugar del nombre del gráfico

Nombre de visualización del gráfico

catalog.cattle.io/namespace

Un espacio de nombres fijo donde el gráfico debería ser desplegado. Si se establece, esto no puede ser cambiado por el usuario

espacio-de-nombres-fijo

catalog.cattle.io/release-name

Un nombre de lanzamiento fijo para la instalación de Helm. Si se establece, esto no puede ser cambiado por el usuario

nombre-de-lanzamiento-fijo

catalog.cattle.io/requests-cpu

Cantidad total de CPU que debería estar no reservada en el clúster. Si hay menos CPU disponible, se mostrará una advertencia

2000m

catalog.cattle.io/requests-memory

Cantidad total de memoria que debería estar no reservada en el clúster. Si hay menos memoria disponible, se mostrará una advertencia

2Gi

catalog.cattle.io/os

Restringe el sistema operativo donde este gráfico puede ser instalado. Valores posibles: linux, windows. Por defecto: sin restricción

linux

Palabras clave

Con la opción keywords en el archivo Chart.yaml es posible proporcionar una lista de categorías para clasificar tu aplicación en la interfaz de usuario de Rancher, como infrastructure, monitoring y más.

questions.yml

Dentro del questions.yml, la mayor parte del contenido girará en torno a las preguntas que hacer al usuario final, pero hay algunos campos adicionales que se pueden establecer en este archivo.

Versiones mínimas/máximas de Rancher

Para cada gráfico, puedes añadir la versión mínima y/o máxima de Rancher, que determina si este gráfico está disponible para ser desplegado desde Rancher.

A pesar de que las versiones de lanzamiento de Rancher están precedidas por un v, no hay ningún prefijo para la versión de lanzamiento al usar esta opción.

rancher_min_version: 2.3.0
rancher_max_version: 2.3.99

Referencia de variable de pregunta

Esta referencia contiene variables que puedes usar en questions.yml anidadas bajo questions:.

Variable Tipo required Descripción

variable

cadena

true

Define el nombre de la variable especificado en el archivo values.yml, usando foo.bar para objetos anidados.

etiqueta

cadena

true

Define la etiqueta de la interfaz de usuario.

description

cadena

false

Especifica la descripción de la variable.

tipo

cadena

false

Por defecto es string si no se especifica (los tipos admitidos actualmente son cadena, multilínea, booleano, int, enum, contraseña, clase de almacenamiento, nombre de host, pvc, secreto y credencial de nube).

obligatorio

bool

false

Define si la variable es requerida o no (verdadero | falso)

por defecto

cadena

false

Especifica el valor por defecto. Solo se utiliza si no hay un valor correspondiente en el archivo values.yml.

grupo

cadena

false

Agrupa preguntas por valor de entrada.

min_length

int

false

Longitud mínima de caracteres.

max_length

int

false

Longitud máxima de caracteres.

min

int

false

Valor entero mínimo.

max

int

false

Valor entero máximo.

options

[]cadena

false

Especifica las opciones cuando el tipo de variable es enum, por ejemplo: opciones:
- "ClusterIP"
- "NodePort"
- "LoadBalancer"

valid_chars

cadena

false

Expresión regular para la validación de caracteres de entrada.

invalid_chars

cadena

false

Expresión regular para la validación de caracteres de entrada no válidos.

subpreguntas

[]subpregunta

false

Añadir un array de subpreguntas.

show_if

cadena

false

Mostrar la variable actual si la variable condicional es verdadera. Por ejemplo show_if: "serviceType=Nodeport"

show_subquestion_if

cadena

false

Mostrar subpreguntas si es verdadero o igual a una de las opciones. Por ejemplo show_subquestion_if: "true"

subquestions[] no puede contener las claves subquestions o show_subquestions_if, pero todas las demás claves de la tabla anterior son compatibles.