Begränsa ett block med with
Begränsa punkten till ett delträd och förstå fallgroparna
Begränsa ett block med with är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Sluta upprepa långa sökvägar
Att skriva .Values.image.repository om och om igen blir rörigt. Åtgärden with begränsar punkten till ett delträd så att Ni kan skriva kortare sökvägar.
Åtgärden with
Ett with-block öppnas med {{ with SOMETHING }} och avslutas med {{ end }}. Inuti blocket återställs punkten till det som Ni skickade in.
{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}Punkten flyttas in
Inuti blocket betyder .repository samma sak som .Values.image.repository. Nyckelordet with binder om punkten till delträdet och kortar alla sökvägar under det.
image:
repository: nginx
tag: "1.27"Det fungerar även som skydd
Om värdet är empty eller saknas hoppar with över hela blocket. Det begränsar alltså scopet och fungerar samtidigt som ett if. 🛡️
Lägga till en else-gren
Precis som if accepterar with en else-gren. else renderas när värdet är tomt, vilket ger en snygg reservlösning för valfri konfiguration.
{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}Fallgropen med scope
Här är fällan: inuti with är punkten inte längre roten. Därför fungerar inte .Release.Name, eftersom Release inte finns under delträdet.
Nå roten med $
För att använda rotvärden inuti with prefixar Ni dem med $. Dollartecknet pekar alltid på den ursprungliga rotkontexten, oavsett hur djupt Ni befinner Er.
{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}Håll blocken små
Eftersom with tar över punkten blir stora block snabbt förvirrande. Håll with-avsnitten korta så att det förblir tydligt vad punkten pekar på.
with kontra if
Använd if när Ni bara testar en flagga, och använd with när Ni också vill gå in i det värdet. with ändrar punkten; if lämnar den orörd.
Förhandsgranska scope
Osäker på vad punkten innehåller? Rendera med helm template och läs resultatet, eller skriv ut scope när Ni felsöker ett besvärligt with-block.
helm template ./mychartKapsla with-block
Ni kan kapsla ett with i ett annat för att gå djupare. Varje nivå flyttar punkten ett steg längre ned, så håll reda på var Ni befinner Er.
{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}Snabbkontroll
Inuti ett {{ with .Values.image }}-block försöker Ni läsa .Release.Name, men det är tomt.
Sammanfattning
Ni kan nu avgränsa punkten med with, få ett automatiskt skydd mot tomma värden, lägga till en else-reservlösning och nå roten med $. Renare mallar! 🎯
Lär dig DevOps-bootcamp 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
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Begränsa ett block med with” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Begränsa ett block med with”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Begränsa ett block med with”?
Begränsa punkten till ett delträd och förstå fallgroparna Ni övar på DevOps-bootcamp 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 DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp 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 4 av 4.
Hur lång tid tar lektionen ”Begränsa ett block med with”?
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 DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-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
- Villkorsblock med if och else
- Sanningsvärden och operatorer i villkor
- Iterera över listor och maps med range
- Begränsa ett block med with