De scope van een blok instellen met with
Beperk de punt tot een subtree en leer de valkuilen kennen.
De scope van een blok instellen met with is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Stop met lange paden herhalen
Steeds opnieuw .Values.image.repository typen wordt onoverzichtelijk. Met de actie with beperk je de punt tot een substructuur, zodat je kortere paden kunt schrijven.
De with-actie
Een with-blok begint met {{ with SOMETHING }} en sluit af met {{ end }}. Binnen het blok wordt de punt opnieuw ingesteld op wat je hebt doorgegeven.
{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}De punt schuift naar binnen
Binnen het blok betekent .repository hetzelfde als .Values.image.repository. Het sleutelwoord with bindt de punt opnieuw aan de substructuur, waardoor elk pad eronder korter wordt.
image:
repository: nginx
tag: "1.27"Het is ook een controle
Als de waarde empty of niet aanwezig is, slaat with het hele blok over. De actie beperkt dus niet alleen het bereik van de punt, maar werkt tegelijkertijd ook als een if. 🛡️
Een else toevoegen
Net als if accepteert with een else-tak. De else-tak wordt weergegeven wanneer de waarde leeg is, zodat je een nette terugvaloptie voor optionele configuratie hebt.
{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}De valkuil van het bereik
Dit is de valkuil: binnen with is de punt niet langer de hoofdcontext. .Release.Name werkt dus niet, omdat Release niet onder de deelboom staat.
Teruggrijpen met $
Als je binnen with waarden uit de hoofdcontext wilt gebruiken, zet je er $ voor. De dollarteken verwijst altijd naar de oorspronkelijke hoofdcontext, hoe diep je ook genest bent.
{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}Houd blokken klein
Omdat with de punt overneemt, worden grote blokken al snel verwarrend. Houd secties met with kort, zodat duidelijk blijft waar de punt naar verwijst.
with versus if
Gebruik if wanneer je alleen een vlag controleert, en gebruik with wanneer je ook in die waarde wilt duiken. with verandert de punt; if laat die ongemoeid.
Bekijk het bereik
Weet je niet zeker wat de punt bevat? Geef de sjabloon weer met helm template en lees de uitvoer, of druk het bereik af tijdens het opsporen van fouten in een lastig with-blok.
helm template ./mychartwith-blokken nesten
Je kunt een with binnen een andere with nesten om dieper te gaan. Elk niveau verplaatst de punt één stap verder naar beneden, dus houd bij waar je bent.
{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}Korte controle
Binnen een {{ with .Values.image }}-blok probeer je .Release.Name te lezen, maar de waarde is leeg.
Samenvatting
Je kunt de punt nu met with beperken tot een bereik, krijgt automatisch een controle op leegte, voegt een else-terugvaloptie toe en bereikt de hoofdcontext met $. Schonere sjablonen! 🎯
Leer DevOps-bootcamp met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 142
- Lessen
- 568
Veelgestelde vragen
Is de les “De scope van een blok instellen met with” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “De scope van een blok instellen met with”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Wat leer ik in “De scope van een blok instellen met with”?
Beperk de punt tot een subtree en leer de valkuilen kennen. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?
Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “De scope van een blok instellen met with”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?
Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Voorwaardelijke blokken met if en else
- Truthiness en operators in voorwaarden
- Door lijsten en maps itereren met range
- De scope van een blok instellen met with