Files, Template i kontekst główny
Dostęp do dołączonych plików i zakresu kropki.
Files, Template i kontekst główny 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.
Kontekst główny: kropka
Na początku szablonu kropka . oznacza kontekst główny zawierający wszystkie wbudowane obiekty: .Values, .Release, .Chart i inne.
Kropka może zmieniać zakres
Bloki takie jak with i range przypisują kropkę do węższego zakresu wartości. Dlatego wewnątrz każdego bloku . nie zawsze oznacza kontekst główny.
Powrót do kontekstu głównego za pomocą dolara
Zmienna $ zawsze wskazuje pierwotny kontekst główny. Wewnątrz range lub with należy użyć $, aby ponownie uzyskać dostęp do .Values lub .Release.
{{ range .Values.ports }}
release: {{ $.Release.Name }}
{{ end }}Obiekt Files
.Files pozwala szablonom odczytywać dołączone do chartu pliki niebędące szablonami, takie jak plik konfiguracji przeznaczony do umieszczenia w zasobie ConfigMap. 📄
Odczytywanie pliku jako tekstu
.Files.Get zwraca zawartość pliku jako ciąg znaków. Należy przekazać ścieżkę względną względem katalogu głównego chartu, aby wstawić plik do manifestu.
data:
app.conf: |
{{ .Files.Get "config/app.conf" | indent 4 }}Files ma ograniczenia
.Files nie może odczytać wszystkiego: templates/ i Chart.yaml są wykluczone, a wzorce .helmignore są pomijane podczas pakowania.
Dopasowywanie wielu plików wzorcem
.Files.Glob dopasowuje wiele plików według wzorca i zwraca mapę, po której można iterować za pomocą range, aby jednocześnie utworzyć wiele wpisów ConfigMap.
{{ range $path, $bytes := .Files.Glob "config/*" }}...{{ end }}Kodowanie zawartości plików
Dane binarne lub poufne należy kodować za pomocą base64. Połączenie .Files.Get z b64enc pozwala bezpiecznie umieścić je w zasobie Secret.
ca.crt: {{ .Files.Get "certs/ca.crt" | b64enc }}Obiekt Template
Obiekt .Template opisuje renderowany plik. .Template.Name to jego ścieżka, przydatna w komentarzach i komunikatach o błędach.
# rendered from {{ .Template.Name }}BasePath wskazuje katalog templates
.Template.BasePath podaje ścieżkę do katalogu templates chartu, który jest renderowany. W połączeniu z .Template.Name pozwala ustalić bieżące położenie.
Przekazywanie kontekstu głównego do helperów
Szablony nazwane widzą tylko kontekst, który zostanie im przekazany. Przekazanie $ lub głównej kropki zapewnia, że helper nadal będzie mógł uzyskać dostęp do .Values i .Release.
{{ include "mychart.labels" $ }}Szybki test
Znajdują się Państwo wewnątrz pętli range, w której kropka została ponownie powiązana z elementem listy.
Podsumowanie: pliki i kontekst główny
Poznali Państwo zasadę, że kropka jest kontekstem głównym, $ zawsze pozwala do niego dotrzeć, a .Files oraz .Template umożliwiają osadzanie dołączonych plików i odnajdywanie bieżącego szablonu.
Często zadawane pytania
Czy lekcja „Files, Template i kontekst główny” jest bezpłatna?
Tak — pełny tekst „Files, Template i kontekst główny” 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 „Files, Template i kontekst główny”?
Dostęp do dołączonych plików i zakresu kropki. Ć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 „Files, Template i kontekst główny”?
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