Ustalanie zakresu bloku za pomocą with
Zawężanie kropki do poddrzewa i poznawanie pułapek.
Ustalanie zakresu bloku za pomocą with to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Koniec z powtarzaniem długich ścieżek
Wielokrotne wpisywanie .Values.image.repository staje się nieczytelne. Instrukcja with zawęża kropkę do poddrzewa, dzięki czemu można zapisywać krótsze ścieżki.
Instrukcja with
Blok with rozpoczyna się od {{ with SOMETHING }} i kończy za pomocą {{ end }}. Wewnątrz niego kropka zostaje przypisana do przekazanego elementu.
{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}Kropka wskazuje poddrzewo
Wewnątrz .repository oznacza .Values.image.repository. Słowo kluczowe with przypisuje kropkę do poddrzewa, skracając każdą ścieżkę znajdującą się poniżej.
image:
repository: nginx
tag: "1.27"To także zabezpieczenie
Jeśli wartość jest pusta lub nie istnieje, with pomija cały swój blok. Instrukcja ta jednocześnie określa zakres kropki i działa jak if. 🛡️
Dodawanie gałęzi else
Podobnie jak if, with obsługuje gałąź else. else jest renderowane, gdy wartość jest pusta, dzięki czemu można elegancko obsłużyć opcjonalną konfigurację.
{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}Pułapka zakresu
Oto pułapka: wewnątrz with kropka nie oznacza już korzenia. Dlatego .Release.Name nie działa, ponieważ Release nie znajduje się w tym poddrzewie.
Sięganie do korzenia za pomocą $
Aby używać wartości z korzenia wewnątrz with, należy poprzedzić je znakiem $. Dolar zawsze wskazuje pierwotny kontekst korzenia, niezależnie od głębokości zagnieżdżenia.
{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}Małe bloki
Ponieważ with przejmuje kropkę, duże bloki szybko stają się nieczytelne. Sekcje with powinny być krótkie, aby było oczywiste, na co wskazuje kropka.
with a if
Należy używać if, gdy sprawdzany jest tylko warunek, a with, gdy dodatkowo ma nastąpić przejście do wskazywanej wartości. with zmienia kropkę, natomiast if pozostawia ją bez zmian.
Podgląd zakresu
Nie wiadomo, co zawiera kropka? Należy użyć helm template i odczytać wynik albo wyświetlić zakres podczas debugowania trudnego bloku with.
helm template ./mychartZagnieżdżanie bloków with
Blok with można zagnieździć w innym bloku with, aby zejść głębiej w strukturę. Każdy poziom przesuwa kropkę o jeden krok w dół, dlatego należy śledzić bieżące położenie.
{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}Szybkie sprawdzenie
Wewnątrz bloku {{ with .Values.image }} próbuje się odczytać .Release.Name, ale wynik jest pusty.
Podsumowanie
Można już określać zakres kropki za pomocą with, korzystać z automatycznego zabezpieczenia przed pustą wartością, dodawać alternatywną gałąź else i sięgać do korzenia za pomocą $. Czystsze szablony! 🎯
Często zadawane pytania
Czy lekcja „Ustalanie zakresu bloku za pomocą with” jest bezpłatna?
Tak — pełny tekst „Ustalanie zakresu bloku za pomocą with” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Ustalanie zakresu bloku za pomocą with”?
Zawężanie kropki do poddrzewa i poznawanie pułapek. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Ustalanie zakresu bloku za pomocą with”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Bloki warunkowe z if i else
- Prawdziwość i operatory w warunkach
- Iterowanie po listach i mapach za pomocą range
- Ustalanie zakresu bloku za pomocą with