Leme — Dependências

Um mergulho profundo nas dependências do gráfico do Helm

Foto de Ilya P no Unsplash

No leme, um gráfico pode depender de outro gráfico. Por exemplo, um aplicativo WordPress requer um banco de dados para começar a funcionar. No leme, podemos implantar o WordPress como parte do gráfico pai e o MySQL ou qualquer outro aplicativo necessário como uma dependência do gráfico pai.

Os gráficos do Helm armazenam suas dependências em 'charts/'. Há duas maneiras diferentes de adicionar gráficos de dependência a gráficos pai:

  1. Listar todas as dependências dentro do arquivo Chart.yaml e do helm fará o download das dependências e as armazenará no diretório 'charts/' .
  2. Preencha manualmente o gráfico de dependência dentro do diretório 'charts/' .

Antes de listar as dependências no arquivo Chart.yaml , por padrão, o arquivo Chart.yaml tem esta aparência:

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

helm dependency update [CHART] 
>> helm dependency update ~/webserver

O Chart.lockarquivo lista as versões exatas das dependências imediatas e suas dependências e assim por diante.

Faixa de versão

Em vez de definir uma versão exata de um gráfico, podemos definir um intervalo de versões. Helm nos permite várias maneiras de definir intervalos de versão.

podemos visualizar todas as versões disponíveis de um gráfico usando o seguinte comando:

 helm search repo [CHART] --versions
>> helm search repo  mysql  --versions

version: 1.2 - 1.4.5que são equivalentes a>= 1.2 <= 1.4.5

dependencies:
- name: mysql
  version: 9.0.0 - 9.9.9
  repository: "https://charts.bitnami.com/bitnami"

● Comparações básicas
Também podemos usar operadores de comparação básicos para definir a versão.

version: "= 9.4.1" 
 
version: "!= 9.4.1"
version: "> 9.4.1"
version: "< 9.4.1"
version: ">= 9.4.1"
version: "<= 9.4.1"
version: ">= 9.4.1 and < 10.0.0"

^1.2.3  is equivalent to >= 1.2.3, < 2.0.0
^1.2.x  is equivalent to >= 1.2.0, < 2.0.0   # x as a placeholder
^2.3    is equivalent to >= 2.3, < 3
^2.x    is equivalent to >= 2.0.0, < 3       # x as a placeholder
^0      is equivalent to >= 0.0.0, < 1.0.0

~1.3.2  is equivalent to >= 1.3.2, < 1.4.0
~3.4    is equivalent to >= 3.4, < 3.5
~3      is equivalent to >= 3, < 4

Dependendo das necessidades do usuário, uma dependência pode ser habilitada ou desabilitada. Se uma dependência estiver desativada, durante a instalação de um gráfico, a dependência correspondente será ignorada.

Existem algumas maneiras de conseguir isso. Usando campos de condição ou campos de tags.

●Usando condição
Podemos definir um campo de condição enquanto definimos uma dependência dentro do arquivo parentChart/Charts.yaml .

# parentChart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"
  condition: mysql.enabled

# parentchart/values.yaml
...
...
mysql:
  enabled: false

●Usando tags
Suponha que haja várias dependências definidas no arquivo Charts.yaml . Para ativá-lo ou desativá-lo de acordo com nossas necessidades, devemos fazer algo semelhante a isto:

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
  condition: mysql.enabled
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  condition: mongodb.enabled

# parentchart/values.yaml
....
....
mysql:
  enabled: true
mongodb
  enabled: false

Em primeiro lugar, vamos ver como podemos definir tags no arquivo values.yaml do pai:

# parentchart/values.yaml
...
...
tags:
  enabled: false

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  tags: 
    - enabled

Listando dependências

Podemos listar todas as dependências de um determinado gráfico.

helm dependency list  [CHART]
>> helm dependency list  ~/webserver/
--------------------------------------------------------------
NAME    VERSION REPOSITORY                              STATUS 
mysql   9.3.4   https://charts.bitnami.com/bitnami      ok     
mongodb 2.0.3   https://charts.bitnami.com/bitnami      missing

Se você achou este artigo útil, não se esqueça de clicar nos botões Seguir e Clap para me ajudar a escrever mais artigos como este. Obrigado

Todos os artigos sobre gráfico de leme -

Helm — Em ação
Helm — Comandos avançados
Helm — Crie seu primeiro gráfico
Helm — Ações de modelo, funções e pipelines
Helm — Controle de fluxo
Helm — Variáveis
​​Helm — Modelo nomeado
Helm — Dependências

Codificação de nível

Obrigado por fazer parte da nossa comunidade! Antes de você ir:

  • Bata palmas para a história e siga o autor
  • Veja mais conteúdo na publicação Level Up Coding
  • Siga-nos: Twitter | Linkedin | Boletim de Notícias

Suggested posts

Rastreie qualquer pessoa com apenas um número de telefone | Investigação OSINT

Rastreie qualquer pessoa com apenas um número de telefone | Investigação OSINT

Você pode ser um investigador OSINT, jogador CTF ou simplesmente alguém que está recebendo chamadas de spam. Alguém que está tentando verificar o número que você viu em um anúncio.

Encontrar informações sobre nomes de domínio

Um trecho de Small, Sharp Software Tools por Brian P. Hogan

Encontrar informações sobre nomes de domínio

Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.

Related posts

A arte é sempre apolítica?

A arte é sempre apolítica?

Ontem, fechamos a porta do Festival Eurovisão da Canção deste ano com uma brilhante e caótica grand finale, onde a cantora sueca Loreen levou para casa o troféu, tornando-se a primeira mulher a vencer duas vezes e trazendo a coroa de volta para a Suécia 50 anos depois que o ABBA venceu a competição com “Waterloo”. Eles se tornaram um dos maiores artistas do cânone da música pop.

Conversas Perigosas

Conversas Perigosas

Se quisermos continuar a prosperar neste planeta, teremos que ter conversas perigosas. Aqueles que desafiam o que temos feito, o que estamos fazendo e o que estamos determinados a continuar fazendo (ou planejamos fazer).

Aprender na semana de trabalho é mais importante do que você pensa

Aprender na semana de trabalho é mais importante do que você pensa

Muitas vezes nos encontramos lutando para implementar o que sabemos que é bom para nós. Desde dizer a um outro significativo que o amamos até lembrar de falar como um pirata, sempre haverá quem afirme que um dia, semana ou mês de eventos não é necessário porque eles já estão fazendo essas coisas.

Como Salvar o Planeta e Ganhar Dinheiro

Como Salvar o Planeta e Ganhar Dinheiro

Quantas vezes você jogou fora uma garrafa de plástico, uma jarra de vidro, uma lata de alumínio ou uma embalagem de energia verde sem pensar duas vezes? Quantas vezes você desejou receber algo em troca de reciclá-los? Se você for como a maioria das pessoas, a resposta provavelmente é muitas vezes. A reciclagem é muitas vezes vista como um aborrecimento, uma tarefa árdua ou um dever que não traz nenhum benefício imediato ou tangível.