Obiekt Values i dostęp zagnieżdżony
Odczytywanie konfiguracji użytkownika głęboko w drzewie.
Obiekt Values i dostęp zagnieżdżony to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 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.
Poznaj obiekt .Values
W szablonie obiekt .Values zawiera wszystkie ustawienia z pliku values.yaml chartu oraz wszelkie przekazane zastąpienia. Jest to drzewo konfiguracji.
Odczytywanie klucza najwyższego poziomu
Klucz najwyższego poziomu, taki jak replicaCount, staje się wartością .Values.replicaCount. Ścieżka z kropkami dokładnie odzwierciedla strukturę YAML-a. 🌳
# values.yaml
replicaCount: 3
# template
replicas: {{ .Values.replicaCount }}Zagłębianie się w zagnieżdżone mapy
Gdy wartości są zagnieżdżone, należy łączyć kropki. Do mapy image z kluczem tag prowadzi ścieżka .Values.image.tag, w której każdy segment odpowiada jednemu poziomowi.
# values.yaml
image:
repository: nginx
tag: "1.27"
# template
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}Klucze rozróżniają wielkość liter
Segmenty ścieżki muszą odpowiadać kluczom YAML znak po znaku. .Values.Image nie jest tym samym co .Values.image i zwraca pusty wynik.
Brakujące klucze dają pusty wynik
Odwołanie do nieistniejącej wartości domyślnie nie powoduje błędu. Helm niczego nie wyrenderuje, co może po cichu doprowadzić do powstania nieprawidłowego YAML-a.
Klucze z myślnikami wymagają index
Składnia kropkowa nie działa dla kluczy zawierających myślniki. Należy uzyskać do nich dostęp za pomocą funkcji index, podając klucz jako ciąg znaków w cudzysłowie.
# values.yaml
service-port: 8080
# template
port: {{ index .Values "service-port" }}Skąd pochodzą wartości domyślne
Autor chartu umieszcza rozsądne wartości domyślne w pliku values.yaml. Każdy znajdujący się tam klucz jest dostępny pod .Values, chyba że użytkownik go zastąpi.
Jak zastąpienia trafiają do .Values
Flaga --set lub plik -f użytkownika są scalane z wartościami domyślnymi przed renderowaniem. W chwili przetwarzania szablonu .Values jest ostatecznym, scalonym drzewem.
helm install web ./mychart --set replicaCount=5Listy również znajdują się pod .Values
Lista YAML staje się wartością typu slice w obiekcie .Values. Należy iterować po niej za pomocą range, aby wyrenderować powtarzające się elementy, zamiast odczytywać ją pojedynczą ścieżką z kropkami. 🔁
# values.yaml
ports:
- 80
- 443Bezpieczne ujmowanie wartości w cudzysłowy
Liczby i wartości logiczne są renderowane bez zmian, co może uszkodzić YAML. Ciągi znaków pochodzące od użytkownika należy umieszczać w funkcji quote, aby pozostały poprawnym tekstem.
tag: {{ .Values.image.tag | quote }}Sprawdź drzewo przed użyciem
Uruchomienie helm show values dla chartu wypisuje całe drzewo wartości. Wynik ma dokładnie taki kształt, do którego odwołuje się .Values.
helm show values ./mychartSzybkie sprawdzenie
Potrzebny jest klucz wartości o nazwie service-port, który zawiera myślnik.
Podsumowanie: drzewo Values
Wiadomo już, że .Values to scalone drzewo konfiguracji, do którego odwołuje się za pomocą ścieżek z kropkami, z uwzględnieniem wielkości liter, a funkcja index służy do obsługi nietypowych kluczy. Drzewo można sprawdzić za pomocą helm show values.
Często zadawane pytania
Czy lekcja „Obiekt Values i dostęp zagnieżdżony” jest bezpłatna?
Tak — pełny tekst „Obiekt Values i dostęp zagnieżdżony” 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 „Obiekt Values i dostęp zagnieżdżony”?
Odczytywanie konfiguracji użytkownika głęboko w drzewie. Ć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 1 z 4.
Ile czasu zajmuje lekcja „Obiekt Values i dostęp zagnieżdżony”?
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
- Obiekt Values i dostęp zagnieżdżony
- Metadane release przez .Release
- Obiekty Chart i Capabilities
- Files, Template i kontekst główny