0Pricing
DevOps Bootcamp · Aula

Preservando o ponto raiz dentro de range

Use uma referência capturada à raiz dentro de loops.

Preservando o ponto raiz dentro de range é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

O ponto pode mudar

Dentro de um laço range, o ponto deixa de significar a raiz do gráfico e passa a apontar para o item atual. Isso confunde muitos autores iniciantes.

Por que isso é um problema

Quando o ponto é redefinido, expressões como .Values ou .Release deixam de funcionar dentro do laço, pois o contexto raiz já não é o ponto.

Capture a raiz primeiro

A correção é simples: antes do laço, salve o ponto raiz em uma variável. Depois, acesse o contexto original por meio dela dentro de range.

{{ $root := . }}

Use a raiz salva

Dentro do laço, faça qualquer caminho que abranja todo o gráfico passar pela sua variável. Escreva $root.Values em vez de .Values para sair do ponto local.

{{ range .Values.items }}
release: {{ $root.Release.Name }}
{{ end }}

O ponto local continua funcionando

Para o próprio item do laço, continue usando o ponto simples. Dentro de range, o ponto é o elemento atual, exatamente o que você precisa nesse caso.

{{ range .Values.ports }}
- port: {{ . }}
{{ end }}

Combinando item e raiz

Modelos reais precisam dos dois ao mesmo tempo: o item obtido pelo ponto e um valor do gráfico obtido pela raiz. Capturar $root permite referenciar cada um deles com clareza.

{{ $root := . }}
{{ range .Values.hosts }}
host: {{ . }}.{{ $root.Values.domain }}
{{ end }}

Uma escolha comum de nome

Muitos gráficos dão a essa variável o nome $root ou $top, mas o nome é escolha sua. O importante é capturar o ponto antes que range o redefina.

range com índice e valor

A forma com duas variáveis associa diretamente o índice e o valor, deixando o ponto livre. Ainda assim, capturar a raiz continua sendo o hábito mais seguro.

{{ range $i, $v := .Values.ports }}
- {{ $i }}: {{ $v }}
{{ end }}

A mesma armadilha dentro de with

O bloco with também redefine o ponto para uma subárvore. O mesmo truque de capturar a raiz recupera suas referências ao gráfico inteiro dentro dele.

Teste a saída do laço

Renderize o gráfico e inspecione o laço. helm template mostra se cada iteração resolveu os valores da raiz da maneira esperada.

helm template ./mychart

Capture antes de entrar

A ordem importa: atribua $root := . fora do laço. Se você capturá-lo dentro de range, o ponto já terá sido redefinido e você salvará o valor errado.

Verificação rápida

Dentro de um laço range, {{ .Values.port }} de repente não retorna nada.

Recapitulação

Você aprendeu que range redefine o ponto, que $root := . salva o contexto original e que o ponto local continua sendo o item do laço. 🔁

Perguntas Frequentes

A aula “Preservando o ponto raiz dentro de range” é grátis?

Sim — o texto completo de “Preservando o ponto raiz dentro de range” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Preservando o ponto raiz dentro de range”?

Use uma referência capturada à raiz dentro de loops. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Preservando o ponto raiz dentro de range”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Atribuindo variáveis de modelo
  2. Preservando o ponto raiz dentro de range
  3. nindent versus indent na prática
  4. Depurando espaços em branco renderizados
← Voltar para DevOps Bootcamp