Percorrendo arquivos com range sobre .Files.Glob
Gerando ConfigMaps a partir de um diretório de arquivos
Percorrendo arquivos com range sobre .Files.Glob é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 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.
Incluindo arquivos em um pacote
Os pacotes podem incluir arquivos adicionais junto com os modelos. O objeto .Files dá aos seus modelos acesso de leitura a esses arquivos incluídos.
Correspondendo arquivos com Glob
O método .Files.Glob retorna os arquivos cujos caminhos correspondem a um padrão, como todos os arquivos dentro de um diretório de configuração.
{{ $files := .Files.Glob "configs/*.conf" }}Percorrendo as correspondências
Combine Glob com range para percorrer cada arquivo correspondente, obtendo seu caminho e seus dados brutos dentro do loop.
{{ range $path, $bytes := .Files.Glob "configs/*" }}Gerando um ConfigMap
Um uso clássico é criar um ConfigMap cujas chaves de dados sejam nomes de arquivos e cujos valores sejam o conteúdo desses arquivos.
O atalho AsConfig
Para exatamente esse caso, AsConfig transforma diretamente um resultado de glob em um bloco de dados pronto para uso em um ConfigMap.
data: {{ (.Files.Glob "configs/*").AsConfig | nindent 2 }}Segredos com AsSecrets
Seu equivalente, AsSecrets, codifica cada arquivo em Base64 para que um resultado de glob possa preencher um recurso Secret.
data: {{ (.Files.Glob "secret/*").AsSecrets | nindent 2 }}Usando o nome base
Dentro de um loop, geralmente você quer apenas o nome do arquivo como chave. Nesse caso, aplique a função base para remover a parte do diretório.
{{ base $path }}: |Lendo o conteúdo de cada arquivo
A variável do loop contém dados brutos, portanto passe-a por toString ou nindent para posicionar o conteúdo corretamente sob sua chave.
{{ $content | toString | nindent 4 }}Os padrões Glob são relativos
Os padrões Glob são resolvidos a partir da raiz do pacote, e os arquivos iniciados por ponto são ignorados. Portanto, mantenha os recursos incluídos em pastas com nomes claros.
Mantendo a saída válida
A indentação é importante: use nindent para cada bloco, garantindo que as chaves e os conteúdos gerados fiquem corretamente aninhados em data.
Lendo um único arquivo
Quando você precisa de apenas um arquivo, em vez de um conjunto, .Files.Get retorna seu conteúdo diretamente, sem nenhum loop.
{{ .Files.Get "configs/app.conf" }}Verificação rápida
Faça uma verificação rápida sobre a seleção de arquivos por padrão glob.
Recapitulação
Você aprendeu a selecionar arquivos incluídos com .Files.Glob, percorrê-los com range e gerar ConfigMaps por meio de AsConfig ou AsSecrets. 🎉
Perguntas Frequentes
A aula “Percorrendo arquivos com range sobre .Files.Glob” é grátis?
Sim — o texto completo de “Percorrendo arquivos com range sobre .Files.Glob” é 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 “Percorrendo arquivos com range sobre .Files.Glob”?
Gerando ConfigMaps a partir de um diretório de arquivos 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 3 de 4.
Quanto tempo leva a aula “Percorrendo arquivos com range sobre .Files.Glob”?
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
- Mesclagem profunda com mergeOverwrite e dict
- tpl: renderizando textos a partir de valores
- Percorrendo arquivos com range sobre .Files.Glob
- fail e proteções de validação personalizadas