Exportando modelos nomeados reutilizáveis
Publicando parciais que outros gráficos podem incluir
Exportando modelos nomeados reutilizáveis é 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.
Modelos nomeados são o conteúdo principal
Um pacote de biblioteca distribui seu conteúdo na forma de modelos nomeados. Você os escreve com define, exatamente como faria em qualquer arquivo _helpers.tpl.
{{- define "common.fullname" -}}
{{ .Release.Name }}-{{ .Chart.Name }}
{{- end -}}Dê um espaço de nomes aos seus modelos
Os nomes dos modelos são globais em um pacote e em suas dependências. Prefixe os seus com o nome da biblioteca, como common.labels, para evitar conflitos.
{{- define "common.labels" -}}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}Coloque-os em templates
Os modelos de biblioteca ficam no diretório templates do pacote, em arquivos com um sublinhado inicial para que o Helm nunca os renderize como manifestos.
common/
templates/
_labels.tpl
_names.tplDefine não produz saída por si só
Um bloco define isolado não produz nada quando o pacote é renderizado. O modelo só emite texto quando outro pacote o inclui posteriormente.
Exporte um recurso completo
Você pode definir um objeto inteiro do Kubernetes como um único modelo nomeado. Os consumidores então renderizam um Service completo com uma única chamada a include.
{{- define "common.service" -}}
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
{{- end -}}Aceite o contexto do chamador
Dentro de um fragmento, o ponto é o que quer que o chamador forneça. Ler .Values e .Release permite que o seu modelo se adapte a cada pacote consumidor.
{{- define "common.image" -}}
{{ .Values.image.repository }}:{{ .Values.image.tag }}
{{- end -}}Documente o escopo esperado
Como os fragmentos confiam na entrada que recebem, deixe um comentário informando o contexto necessário. Um consumidor que passe o ponto errado receberá erros confusos.
{{/* common.fullname expects the root context (.) */}}Mantenha uma única responsabilidade por modelo
Divida a lógica em fragmentos pequenos e focados: um para nomes, um para rótulos e um para seletores. Peças pequenas podem ser compostas facilmente em muitos pacotes.
Os marcadores de espaço em branco importam
Envolva define e end em marcadores de hífen, como {{- e -}}, para que a saída da biblioteca não insira linhas em branco indesejadas no YAML do consumidor.
{{- define "common.name" -}}
{{ .Chart.Name }}
{{- end -}}Nada é exportado até ser incluído
Definir um modelo o torna disponível, não ativo. Ele só contribui para a saída quando um pacote de aplicação o chama com include ou template.
Um pequeno conjunto de auxiliares reutilizáveis
Alguns fragmentos, como common.fullname e common.labels, formam o vocabulário compartilhado sobre o qual todo pacote da equipe pode ser construído.
{{- define "common.fullname" -}}
{{ printf "%s-%s" .Release.Name .Chart.Name }}
{{- end -}}Verificação rápida
Por que uma biblioteca deve prefixar os nomes de seus modelos, usando common.labels em vez de labels?
Recapitulação: exportando modelos
Você publica lógica reutilizável com define em arquivos com prefixo de sublinhado, cria um espaço de nomes para os nomes e confia no ponto do chamador para obter o contexto. 🧩
Perguntas Frequentes
A aula “Exportando modelos nomeados reutilizáveis” é grátis?
Sim — o texto completo de “Exportando modelos nomeados reutilizáveis” é 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 “Exportando modelos nomeados reutilizáveis”?
Publicando parciais que outros gráficos podem incluir 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 “Exportando modelos nomeados reutilizáveis”?
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
- Declarando um tipo de gráfico de biblioteca
- Exportando modelos nomeados reutilizáveis
- Consumindo uma biblioteca como dependência
- Substituindo localmente os padrões da biblioteca