Den Root-Punkt innerhalb von range beibehalten
Verwenden Sie in Schleifen eine gespeicherte Referenz auf die Wurzel.
Den Root-Punkt innerhalb von range beibehalten ist eine kostenlose Helm Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Helm Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Helm Academy-Kurs umfasst insgesamt 4 Lektionen.
Der Punkt kann sich bewegen
Innerhalb einer range-Schleife bezeichnet der Punkt nicht mehr die Chart-Root, sondern das aktuelle Element. Das bringt viele Einsteiger beim Erstellen von Templates durcheinander.
Warum das problematisch ist
Sobald der Punkt neu gebunden wurde, funktionieren Ausdrücke wie .Values oder .Release innerhalb der Schleife nicht mehr, weil der Root-Kontext nicht länger der Punkt ist.
Zuerst den Root-Kontext speichern
Die Lösung ist einfach: Speichern Sie den Root-Punkt vor der Schleife in einer Variable. Über diese Variable können Sie innerhalb von range wieder auf den ursprünglichen Kontext zugreifen.
{{ $root := . }}Den gespeicherten Root verwenden
Ersetzen Sie innerhalb der Schleife jeden chartweiten Pfad durch den Zugriff über Ihre Variable. Schreiben Sie $root.Values statt .Values, um den lokalen Punkt zu umgehen.
{{ range .Values.items }}
release: {{ $root.Release.Name }}
{{ end }}Der lokale Punkt funktioniert weiterhin
Für das Schleifenelement selbst verwenden Sie weiterhin den einfachen Punkt. Innerhalb von range ist der Punkt das aktuelle Element – genau das, was Sie dort benötigen.
{{ range .Values.ports }}
- port: {{ . }}
{{ end }}Element und Root kombinieren
In echten Templates benötigen Sie beides gleichzeitig: das Element über den Punkt und einen Chart-Wert aus dem Root-Kontext. Mit $root können Sie auf beides übersichtlich zugreifen.
{{ $root := . }}
{{ range .Values.hosts }}
host: {{ . }}.{{ $root.Values.domain }}
{{ end }}Eine gängige Namenswahl
Viele Charts nennen diese Variable $root oder $top, aber der Name bleibt Ihnen überlassen. Entscheidend ist, dass Sie den Punkt speichern, bevor range ihn neu bindet.
range mit Index und Wert
Die Form mit zwei Variablen bindet Index und Wert direkt, sodass der Punkt frei bleibt. Trotzdem ist es am sichersten, den Root-Kontext zu speichern.
{{ range $i, $v := .Values.ports }}
- {{ $i }}: {{ $v }}
{{ end }}Dieselbe Falle innerhalb von with
Auch der with-Block bindet den Punkt an einen Teilbaum. Derselbe Trick mit dem gespeicherten Root rettet Ihre chartweiten Verweise auch innerhalb dieses Blocks.
Die Ausgabe der Schleife testen
Rendern Sie das Chart und prüfen Sie die Schleife. helm template zeigt, ob jede Iteration die Root-Werte wie erwartet aufgelöst hat.
helm template ./mychartVor dem Betreten speichern
Die Reihenfolge ist wichtig: Weisen Sie $root := . außerhalb der Schleife zu. Speichern Sie den Wert innerhalb von range, ist der Punkt bereits neu gebunden und Sie sichern den falschen Wert.
Kurztest
Innerhalb einer range-Schleife liefert {{ .Values.port }} plötzlich nichts zurück.
Zusammenfassung
Sie haben gelernt, dass range den Punkt neu bindet, dass $root := . den ursprünglichen Kontext speichert und dass der lokale Punkt das Schleifenelement bleibt. 🔁
Häufig gestellte Fragen
Ist die Lektion „Den Root-Punkt innerhalb von range beibehalten“ kostenlos?
Ja — der vollständige Text von „Den Root-Punkt innerhalb von range beibehalten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Helm Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Helm Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Den Root-Punkt innerhalb von range beibehalten“?
Verwenden Sie in Schleifen eine gespeicherte Referenz auf die Wurzel. Du übst Helm Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Helm Academy zu starten?
Keine Vorkenntnisse erforderlich. Helm Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Den Root-Punkt innerhalb von range beibehalten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Helm Academy-Lektion Code schreiben und ausführen?
Ja. Jede Helm Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Template-Variablen zuweisen
- Den Root-Punkt innerhalb von range beibehalten
- nindent und indent in der Praxis
- Gerenderten Leerraum debuggen