Iterera över filer med range i .Files.Glob
Generera ConfigMaps från en katalog med filer
Iterera över filer med range i .Files.Glob är en gratis lektion i Helm Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Helm Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Helm Academy innehåller totalt 4 lektioner.
Paketera filer i en chart
Charts kan innehålla extra filer bredvid mallarna. Objektet .Files ger mallarna läsåtkomst till dessa paketerade filer.
Matcha filer med Glob
Metoden .Files.Glob returnerar de filer vars sökvägar matchar ett mönster, till exempel alla filer i en config-katalog.
{{ $files := .Files.Glob "configs/*.conf" }}Iterera över matchningarna
Kombinera Glob med range för att iterera över varje matchad fil och få dess sökväg och råa byte inuti loopen.
{{ range $path, $bytes := .Files.Glob "configs/*" }}Generera en ConfigMap
Ett klassiskt användningsfall är att skapa en ConfigMap vars datanycklar är filnamn och vars värden är filinnehållet.
Genvägen AsConfig
För just det användningsfallet omvandlar AsConfig ett globresultat direkt till ett färdigt datablock för en ConfigMap.
data: {{ (.Files.Glob "configs/*").AsConfig | nindent 2 }}Secrets med AsSecrets
Syskonfunktionen AsSecrets kodar varje fil med Base64, så att ett globresultat i stället kan fylla i en Secret-resurs.
data: {{ (.Files.Glob "secret/*").AsSecrets | nindent 2 }}Använd basnamnet
Inuti en loop vill ni ofta använda bara filnamnet som nyckel. Använd därför funktionen base för att ta bort katalogdelen.
{{ base $path }}: |Läs innehåll per fil
Loopvariabeln består av råa byte, så skicka den genom toString eller nindent för att placera innehållet korrekt under sin nyckel.
{{ $content | toString | nindent 4 }}Globmönster är relativa
Globmönster tolkas från chart root, och punktfiler hoppas över. Därför bör ni placera paketerade resurser i tydligt namngivna mappar.
Se till att utdata är giltiga
Indraget är viktigt: använd nindent för varje block så att de genererade nycklarna och innehållsblocken hamnar korrekt under data.
Läs en enskild fil
När ni bara behöver en fil i stället för en uppsättning returnerar .Files.Get innehållet direkt, helt utan loopar.
{{ .Files.Get "configs/app.conf" }}Snabb kontroll
Snabb kontroll av filglobbning.
Sammanfattning
Ni har lärt er att välja paketerade filer med .Files.Glob, iterera över dem med range och skapa ConfigMaps med AsConfig eller AsSecrets. 🎉
Lär dig YAML med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Iterera över filer med range i .Files.Glob” gratis?
Ja – hela texten till ”Iterera över filer med range i .Files.Glob” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Helm Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Helm Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Iterera över filer med range i .Files.Glob”?
Generera ConfigMaps från en katalog med filer Ni övar på Helm Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Helm Academy?
Du behöver inga förkunskaper. Utbildningen i Helm Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Iterera över filer med range i .Files.Glob”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Helm Academy-lektionen?
Ja. Varje Helm Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Djup sammanslagning med mergeOverwrite och dict
- tpl: Rendera strängar från värden
- Iterera över filer med range i .Files.Glob
- fail och anpassade valideringsskydd