Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Criando Apps

Para um guia completo sobre o desenvolvimento de gráficos, consulte o Guia do Desenvolvedor de Modelos de Gráficos na documentação oficial do Helm.

Tipos de Gráficos

O Rancher suporta dois tipos diferentes de gráficos: gráficos do Helm e gráficos do Rancher.

Gráficos do Helm

Os gráficos nativos do Helm incluem um aplicativo junto com outro software necessário para executá-lo. Ao implantar gráficos nativos do Helm, você pode fornecer os valores dos parâmetros do gráfico em um editor YAML.

Gráficos do Rancher

Os gráficos do Rancher são gráficos nativos do Helm com dois arquivos que melhoram a experiência do usuário: app-readme.md e questions.yaml. Leia mais sobre eles em Arquivos Adicionais para Gráficos do Rancher.

Os gráficos do Rancher adicionam descrições simplificadas de gráficos e formulários de configuração para facilitar a implantação do aplicativo. Os usuários do Rancher não precisam ler toda a lista de variáveis do Helm para entender como lançar um App.

Estrutura do Diretório de Gráficos

Você pode fornecer Gráficos do Helm em um repositório Helm padrão baseado em HTTP. Para mais informações, consulte o Guia do Repositório de Gráficos na documentação oficial do Helm.

Alternativamente, você pode organizar seus gráficos em um Repositório Git e adicioná-lo diretamente ao App Marketplace.

A tabela a seguir demonstra a estrutura do diretório para um repositório Git. O diretório charts é o diretório de nível superior sob a base do repositório. Adicionar o repositório ao Rancher exporá todos os gráficos contidos nele. Os arquivos questions.yaml, README.md e requirements.yml são específicos para gráficos do Rancher, mas são opcionais para personalização de gráficos.

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

Arquivos Adicionais para Rancher Charts

Antes de criar seu próprio catálogo personalizado, você deve ter uma compreensão básica de como um Rancher chart difere de um Helm chart nativo. Rancher charts diferem ligeiramente dos Helm charts em suas estruturas de diretório. Rancher charts incluem dois arquivos que os Helm charts não possuem.

  • app-readme.md

    Um arquivo que fornece texto descritivo no cabeçalho da interface do usuário do chart.

  • questions.yml

    Um arquivo que contém perguntas para um formulário. Essas perguntas do formulário simplificam a implantação de um chart. Sem ele, você deve configurar a implantação usando um arquivo de configuração YAML de valores, o que é mais difícil. As imagens a seguir mostram a diferença entre um Rancher chart (que inclui questions.yml) e um Helm chart nativo (que não inclui).

questions.yml
Figure 1. Rancher Chart com questions.yml
values.yaml
Figure 2. Helm Chart sem questions.yml

Chart.yaml

Anotações

O Rancher suporta anotações adicionais que você pode adicionar ao arquivo Chart.yaml. Essas anotações permitem que você defina dependências de aplicativos ou configure padrões adicionais da interface do usuário:

Anotação Descrição Exemplo

catalog.cattle.io/auto-install

Se definido, instalará o chart especificado na versão especificada antes de instalar este chart

other-chart-name=1.0.0

catalog.cattle.io/display-name

Um nome de exibição que deve ser exibido no App Marketplace em vez do nome do chart

Nome de Exibição do Chart

catalog.cattle.io/namespace

Um namespace fixo onde o chart deve ser implantado. Se definido, isso não pode ser alterado pelo usuário

fixed-namespace

catalog.cattle.io/release-name

Um nome de release fixo para a instalação do Helm. Se definido, isso não pode ser alterado pelo usuário

fixed-release-name

catalog.cattle.io/requests-cpu

Quantidade total de CPU que deve estar não reservada no cluster. Se menos CPU estiver disponível, um aviso será exibido

2000m

catalog.cattle.io/requests-memory

Quantidade total de memória que deve estar não reservada no cluster. Se menos memória estiver disponível, um aviso será exibido

2Gi

catalog.cattle.io/os

Restringe o SO onde este gráfico pode ser instalado. Valores possíveis: linux, windows. Padrão: sem restrição

linux

Palavras-chave

Com a opção keywords no arquivo Chart.yaml é possível fornecer uma lista de categorias para classificar seu aplicativo na interface do Rancher, como infrastructure, monitoring e mais.

questions.yml

Dentro do questions.yml, a maior parte do conteúdo estará em torno das perguntas a serem feitas ao usuário final, mas há alguns campos adicionais que podem ser configurados neste arquivo.

Versões mínimas/máximas do Rancher

Para cada gráfico, você pode adicionar a versão mínima e/ou máxima do Rancher, que determina se este gráfico está disponível para ser implantado a partir do Rancher.

Embora as versões de lançamento do Rancher sejam prefixadas com um v, não há nenhum prefixo para a versão de lançamento ao usar esta opção.

rancher_min_version: 2.3.0
rancher_max_version: 2.3.99

Referência de Variável de Pergunta

Esta referência contém variáveis que você pode usar em questions.yml aninhadas sob questions:.

Variável Tipo Obrigatória Descrição

variável

string

true

Defina o nome da variável especificado no arquivo values.yml, usando foo.bar para objetos aninhados.

label

string

true

Defina o rótulo da interface do usuário.

descrição

string

falso

Especifique a descrição da variável.

type

string

falso

Padrão para string se não especificado (os tipos suportados atualmente são string, multiline, boolean, int, enum, password, storageclass, hostname, pvc, secret e cloudcredential).

required (obrigatório)

bool

falso

Defina se a variável é obrigatória ou não (true | false)

default

string

falso

Especifique o valor padrão. Usado apenas se não houver valor correspondente no arquivo values.yml.

grupo

string

falso

Agrupe perguntas por valor de entrada.

min_length

int

falso

Comprimento mínimo do caractere.

max_length

int

falso

Comprimento máximo do caractere.

min

int

falso

Valor mínimo inteiro.

max

int

falso

Valor máximo inteiro.

options

[]string

falso

Especifique as opções quando o tipo da variável for enum, por exemplo: opções:
- "ClusterIP"
- "NodePort"
- "LoadBalancer"

valid_chars

string

falso

Expressão regular para validação de caracteres de entrada.

invalid_chars

string

falso

Expressão regular para validação de caracteres de entrada inválidos.

subperguntas

[]subquestion

falso

Adicione um array de subperguntas.

show_if

string

falso

Mostre a variável atual se a variável condicional for verdadeira. Por exemplo show_if: "serviceType=Nodeport"

show_subquestion_if

string

falso

Mostre subperguntas se for verdadeiro ou igual a uma das opções. por exemplo show_subquestion_if: "true"

subquestions[] não pode conter as chaves subquestions ou show_subquestions_if, mas todas as outras chaves na tabela acima são suportadas.