Objetos Embutidos
Objetos são passados para um template pelo motor de templates. Seu código também pode
passar objetos adiante (veremos exemplos quando analisarmos as instruções with e range).
Existem até algumas formas de criar novos objetos dentro dos seus templates, como
com a função tuple que veremos mais adiante.
Objetos podem ser simples e ter apenas um valor. Ou podem conter outros objetos
ou funções. Por exemplo, o objeto Release contém vários objetos (como
Release.Name) e o objeto Files possui algumas funções.
Na seção anterior, usamos {{ .Release.Name }} para inserir o nome de um release
em um template. Release é um dos objetos de nível superior que você pode
acessar nos seus templates.
Release: Este objeto descreve o próprio release. Ele contém vários objetos:Release.Name: O nome do releaseRelease.Namespace: O namespace no qual o release será instalado (se o manifesto não sobrescrever)Release.IsUpgrade: Este valor é definido comotruese a operação atual for um upgrade ou rollback.Release.IsInstall: Este valor é definido comotruese a operação atual for uma instalação.Release.Revision: O número de revisão deste release. Na instalação, este valor é 1, e é incrementado a cada upgrade e rollback.Release.Service: O serviço que está renderizando o template atual. No Helm, este valor é sempreHelm.
Values: Valores passados para o template a partir do arquivovalues.yamle de arquivos fornecidos pelo usuário. Por padrão,Valuesestá vazio.Chart: O conteúdo do arquivoChart.yaml. Qualquer dado emChart.yamlestará acessível aqui. Por exemplo,{{ .Chart.Name }}-{{ .Chart.Version }}exibirámychart-0.1.0.- Os campos disponíveis estão listados no Guia de Charts
Subcharts: Fornece acesso ao escopo (.Values, .Charts, .Releases etc.) dos subcharts para o chart pai. Por exemplo,.Subcharts.mySubChart.myValuepara acessar o valormyValueno chartmySubChart.Files: Fornece acesso a todos os arquivos não especiais em um chart. Embora você não possa usá-lo para acessar templates, pode usá-lo para acessar outros arquivos no chart. Consulte a seção Acessando Arquivos para mais informações.Files.Geté uma função para obter um arquivo pelo nome (.Files.Get config.ini)Files.GetBytesé uma função para obter o conteúdo de um arquivo como um array de bytes em vez de uma string. Isso é útil para coisas como imagens.Files.Globé uma função que retorna uma lista de arquivos cujos nomes correspondem ao padrão glob fornecido.Files.Linesé uma função que lê um arquivo linha por linha. Isso é útil para iterar sobre cada linha de um arquivo.Files.AsSecretsé uma função que retorna o conteúdo dos arquivos como strings codificadas em Base 64.Files.AsConfigé uma função que retorna o conteúdo dos arquivos como um mapa YAML.
Capabilities: Fornece informações sobre as capacidades que o cluster Kubernetes suporta.Capabilities.APIVersionsé um conjunto de versões.Capabilities.APIVersions.Has $versionindica se uma versão (por exemplo,batch/v1) ou recurso (por exemplo,apps/v1/Deployment) está disponível no cluster.Capabilities.KubeVersioneCapabilities.KubeVersion.Versioné a versão do Kubernetes.Capabilities.KubeVersion.Majoré a versão major do Kubernetes.Capabilities.KubeVersion.Minoré a versão minor do Kubernetes.Capabilities.HelmVersioné o objeto que contém os detalhes da versão do Helm, o mesmo resultado dehelm version.Capabilities.HelmVersion.Versioné a versão atual do Helm no formato semver.Capabilities.HelmVersion.GitCommité o sha1 do git do Helm.Capabilities.HelmVersion.GitTreeStateé o estado da árvore git do Helm.Capabilities.HelmVersion.GoVersioné a versão do compilador Go utilizado.
Template: Contém informações sobre o template atual que está sendo executadoTemplate.Name: Um caminho de arquivo com namespace para o template atual (por exemplo,mychart/templates/mytemplate.yaml)Template.BasePath: O caminho com namespace para o diretório de templates do chart atual (por exemplo,mychart/templates).
Os valores embutidos sempre começam com letra maiúscula. Isso segue a convenção de nomenclatura do Go. Quando você cria seus próprios nomes, você é livre para usar uma convenção que se adeque à sua equipe. Algumas equipes, como muitas cujos charts você pode ver no Artifact Hub, escolhem usar apenas letras minúsculas iniciais para distinguir nomes locais daqueles embutidos. Neste guia, seguimos essa convenção.