0Pricing
Helm Academy · Lezione

Iterare sui file con range usando .Files.Glob

Generazione di ConfigMap da una directory di file

Iterare sui file con range usando .Files.Glob è una lezione Helm Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Helm Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Helm Academy include 4 lezioni in totale.

Includere file in un chart

I chart possono includere file aggiuntivi insieme ai template. L'oggetto .Files consente ai template di accedere in lettura a questi file inclusi nel chart.

Corrispondenza dei file con Glob

Il metodo .Files.Glob restituisce i file i cui percorsi corrispondono a un pattern, ad esempio tutti i file in una directory di configurazione.

{{ $files := .Files.Glob "configs/*.conf" }}

Iterare sulle corrispondenze

Abbini Glob a range per iterare su ogni file trovato, ottenendo il relativo percorso e i byte grezzi all'interno del ciclo.

{{ range $path, $bytes := .Files.Glob "configs/*" }}

Generare una ConfigMap

Un uso classico consiste nel creare un'unica ConfigMap le cui chiavi data sono i nomi dei file e i cui valori ne contengono il contenuto.

La scorciatoia AsConfig

Per questo caso esatto, AsConfig converte direttamente il risultato di un glob in un blocco data pronto per una ConfigMap.

data: {{ (.Files.Glob "configs/*").AsConfig | nindent 2 }}

Secret con AsSecrets

La funzione sorella, AsSecrets, codifica in Base64 ogni file, così il risultato di un glob può invece popolare una risorsa Secret.

data: {{ (.Files.Glob "secret/*").AsSecrets | nindent 2 }}

Usare il nome base

All'interno di un ciclo spesso serve solo il nome del file come chiave, quindi applichi la funzione base per rimuovere la parte relativa alla directory.

{{ base $path }}: |

Leggere il contenuto di ogni file

La variabile del ciclo contiene byte grezzi, quindi la passi attraverso toString o nindent per inserire ordinatamente il contenuto sotto la relativa chiave.

{{ $content | toString | nindent 4 }}

I pattern Glob sono relativi

I pattern Glob vengono risolti a partire dalla chart root e i file nascosti vengono ignorati; mantenga quindi gli asset inclusi in cartelle con nomi chiari.

Mantenere valido l'output

L'indentazione è importante: usi nindent per ogni blocco, così le chiavi e i contenuti generati vengono annidati correttamente sotto data.

Leggere un singolo file

Quando serve un solo file anziché un insieme, .Files.Get ne restituisce direttamente il contenuto, senza alcun ciclo.

{{ .Files.Get "configs/app.conf" }}

Verifica rapida

Verifica rapida sul file globbing.

Riepilogo

Ha imparato a selezionare i file inclusi con .Files.Glob, a iterare su di essi con range e a generare ConfigMap tramite AsConfig o AsSecrets. 🎉

Domande Frequenti

La lezione «Iterare sui file con range usando .Files.Glob» è gratuita?

Sì — il testo completo di «Iterare sui file con range usando .Files.Glob» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Helm Academy, passa a CoddyKit PRO. Il corso Helm Academy include 4 lezioni in totale.

Cosa imparerò in «Iterare sui file con range usando .Files.Glob»?

Generazione di ConfigMap da una directory di file Eserciti Helm Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Helm Academy?

Non è richiesta alcuna esperienza precedente. Helm Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Iterare sui file con range usando .Files.Glob»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Helm Academy?

Sì. Ogni lezione Helm Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Unione profonda con mergeOverwrite e dict
  2. tpl: eseguire il rendering di stringhe dai valori
  3. Iterare sui file con range usando .Files.Glob
  4. fail e guardie di convalida personalizzate
← Torna a Helm Academy