DevOps Bootcamp · Aula

Passando escopo para um modelo nomeado

Envie o objeto de contexto correto para um parcial.

Aula 4 de 413 etapas

Passando escopo para um modelo nomeado é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 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.

Fragmentos precisam de contexto

Um modelo nomeado só pode ler o que você passar a ele. O segundo argumento de include é o escopo, o ponto que o fragmento verá internamente.

{{ include "mychart.labels" . }}

O ponto é o escopo

Esse ponto final é o contexto atual. Passar o ponto raiz dá ao fragmento acesso a .Values, .Release e .Chart.

Esquecer o escopo causa problemas

Se você chamar um fragmento sem um escopo, o ponto dele se tornará nil. Qualquer referência a .Values dentro dele será renderizada vazia ou gerará erros.

{{ include "mychart.name" }}

Passando o contexto raiz

A maioria dos auxiliares espera o contexto completo do gráfico, então você passa o ponto simples. Esse é o padrão seguro que faz os auxiliares padrão funcionarem.

{{ include "mychart.fullname" . }}

Passando um subobjeto

Às vezes, um fragmento precisa apenas de uma parte dos valores. Você pode passar uma subárvore para que o ponto dela aponte exatamente para essa parte.

{{ include "mychart.ports" .Values.service }}

Internamente, o ponto muda

Quando você passa .Values.service, o ponto do fragmento passa a ser esse objeto. Ele lê .port diretamente, em vez de .Values.service.port.

{{- define "mychart.ports" -}}
port: {{ .port }}
{{- end -}}

Perdendo a raiz de propósito

Restringir o escopo é útil, mas impede o acesso a .Release e aos valores globais. O fragmento só vê o objeto que você passou.

Passe ambos com um dict

Precisa de uma subárvore e da raiz? Crie um pequeno dict e passe-o; depois, acesse cada parte pela respectiva chave dentro do fragmento.

{{ include "mychart.tpl" (dict "top" . "svc" .Values.service) }}

Lendo o escopo agrupado

Dentro do fragmento, desempacote o dict pela chave. Agora você tem a raiz por meio de .top e a subárvore por meio de .svc, ambas disponíveis ao mesmo tempo.

{{- define "mychart.tpl" -}}
name: {{ .top.Release.Name }}
port: {{ .svc.port }}
{{- end -}}

Erros de escopo são comuns

O erro clássico é um fragmento que lê .Release.Name, mas foi chamado com um escopo restrito. Sempre verifique qual contexto você realmente passou.

Renderize para verificar o escopo

Execute helm template . e confirme se a saída do fragmento está preenchida. Campos vazios geralmente significam que o escopo errado chegou ao fragmento.

helm template my-release .

Verificação rápida

Um fragmento precisa de uma subárvore e de .Release.Name. Como fornecer ambos?

Recapitulação: passando o escopo

O argumento após o nome de um fragmento define seu ponto. Passe o ponto raiz, uma subárvore ou um dict para combinar ambos. Escopo errado significa saída vazia. 🎯

Grátis para começar

Aprenda DevOps Bootcamp com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
142
Aulas
568

Perguntas Frequentes

A aula “Passando escopo para um modelo nomeado” é grátis?

Sim — o texto completo de “Passando escopo para um modelo nomeado” é 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 “Passando escopo para um modelo nomeado”?

Envie o objeto de contexto correto para um parcial. 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 4 de 4.

Quanto tempo leva a aula “Passando escopo para um modelo nomeado”?

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. Definindo um parcial com define
  2. Inserindo parciais com template e include
  3. Os auxiliares padrão Fullname e Labels
  4. Passando escopo para um modelo nomeado
← Voltar para DevOps Bootcamp