De rootpunt binnen range behouden
Gebruik een opgeslagen rootverwijzing binnen lussen.
De rootpunt binnen range behouden is een gratis Helm Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Helm Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Helm Academy bevat in totaal 4 lessen.
De punt kan veranderen
Binnen een range-lus betekent de punt niet langer de hoofdcontext van de chart, maar verwijst die naar het huidige item. Dat zorgt bij veel beginnende auteurs voor problemen.
Waarom dat een probleem is
Zodra de punt opnieuw is gebonden, werken expressies zoals .Values of .Release niet meer binnen de lus, omdat de hoofdcontext niet langer de punt is.
Sla de hoofdcontext eerst op
De oplossing is eenvoudig: sla vóór de lus de punt van de hoofdcontext op in een variabele. Via die variabele bereik je binnen range weer de oorspronkelijke context.
{{ $root := . }}Gebruik de opgeslagen hoofdcontext
Vervang binnen de lus elk pad dat voor de hele chart geldt door je variabele. Schrijf $root.Values in plaats van .Values om de lokale punt te omzeilen.
{{ range .Values.items }}
release: {{ $root.Release.Name }}
{{ end }}De lokale punt werkt nog steeds
Voor het luselement zelf blijf je de gewone punt gebruiken. Binnen range is de punt het huidige element, precies wat je daar nodig hebt.
{{ range .Values.ports }}
- port: {{ . }}
{{ end }}Item en hoofdcontext combineren
In echte sjablonen heb je beide tegelijk nodig: het item via de punt en een chartwaarde uit de hoofdcontext. Met $root kun je naar beide duidelijk verwijzen.
{{ $root := . }}
{{ range .Values.hosts }}
host: {{ . }}.{{ $root.Values.domain }}
{{ end }}Een gebruikelijke naamkeuze
Veel charts noemen deze variabele $root of $top, maar de naam bepaal je zelf. Het belangrijkste is dat je de punt opslaat voordat range die opnieuw bindt.
range met index en waarde
De vorm met twee variabelen koppelt de index en waarde rechtstreeks, zodat de punt vrij is. Toch blijft het opslaan van de hoofdcontext de veiligste gewoonte.
{{ range $i, $v := .Values.ports }}
- {{ $i }}: {{ $v }}
{{ end }}Dezelfde valkuil binnen with
Het with-blok bindt de punt ook opnieuw aan een deelboom. Precies dezelfde truc waarbij je de hoofdcontext opslaat, helpt je chartbrede verwijzingen daar toch te gebruiken.
Test de lusuitvoer
Geef de chart weer en bekijk de lus. helm template laat zien of elke iteratie de waarden uit de hoofdcontext oplost zoals je verwachtte.
helm template ./mychartSla de hoofdcontext vóór het binnengaan op
De volgorde is belangrijk: wijs $root := . buiten de lus toe. Sla je de waarde binnen range op, dan is de punt al opnieuw gebonden en bewaar je de verkeerde waarde.
Korte controle
Binnen een range-lus levert {{ .Values.port }} plotseling niets op.
Samenvatting
Je hebt geleerd dat range de punt opnieuw bindt, dat $root := . de oorspronkelijke context opslaat en dat de lokale punt het luselement blijft. 🔁
Leer YAML 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
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “De rootpunt binnen range behouden” gratis?
Ja — de volledige tekst van “De rootpunt binnen range behouden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Helm Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Helm Academy bevat in totaal 4 lessen.
Wat leer ik in “De rootpunt binnen range behouden”?
Gebruik een opgeslagen rootverwijzing binnen lussen. Je oefent met Helm Academy 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 Helm Academy te beginnen?
Ervaring vooraf is niet nodig. Helm Academy 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 2 van 4.
Hoe lang duurt de les “De rootpunt binnen range behouden”?
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 Helm Academy?
Ja. Elke les over Helm Academy 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
- Templatevariabelen toewijzen
- De rootpunt binnen range behouden
- nindent versus indent in de praktijk
- Gerenderde witruimte debuggen