Definiowanie partial za pomocą define
Deklarowanie wielokrotnego użytku nazwanego bloku szablonu.
Definiowanie partial za pomocą define to bezpłatna lekcja Helm Academy 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 Helm Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Helm Academy zawiera 4 lekcji w sumie.
Po co powtarzać te same elementy
Te same etykiety i nazwy są kopiowane do każdego manifestu w charcie. Nazwany szablon pozwala zapisać taki blok raz i używać go w dowolnym miejscu.
Poznaj akcję define
Wielokrotnego użytku blok deklaruje się za pomocą akcji define. Nadaje ona nazwę fragmentowi tekstu szablonu, ale sama niczego nie renderuje.
{{- define "mychart.labels" -}}
app: my-app
{{- end -}}Budowa bloku define
Każde define rozpoczyna się od ciągu znaków z nazwą i kończy za pomocą end. Wszystko pomiędzy nimi stanowi treść, którą wywołujący będą mogli wstawić.
{{- define "NAME" -}}
...body...
{{- end -}}Konwencje nazewnictwa mają znaczenie
Nazwy są globalne w obrębie całego chartu, dlatego należy poprzedzać je nazwą chartu, aby uniknąć konfliktów. Konwencją jest zapis z kropką w formie chart.purpose.
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: mychart
{{- end -}}Gdzie przechowywać fragmenty
Zgodnie z konwencją wszystkie bloki define należy umieszczać w pliku templates/_helpers.tpl. Początkowy podkreślnik informuje Helm, że plik nie generuje własnego manifestu.
Pliki z podkreślnikiem są wyjątkowe
Pliki w katalogu templates, których nazwa zaczyna się od podkreślnika, nigdy nie są renderowane do obiektów Kubernetes. Zawierają wyłącznie fragmenty i funkcje pomocnicze przeznaczone do użycia przez inne szablony.
Define nie generuje wyniku
Zdefiniowanie fragmentu jedynie rejestruje go pod nazwą. Nic nie pojawia się w wyrenderowanym YAML-u, dopóki inny szablon rzeczywiście nie wywoła tego fragmentu.
Fragment może używać kropki
Wewnątrz fragmentu można odczytywać kontekst, na przykład .Release.Name, ale tylko wtedy, gdy wywołujący przekaże mu ten zakres. Przekazywanie zakresu zostanie omówione wkrótce.
{{- define "mychart.name" -}}
{{ .Release.Name }}
{{- end -}}Wiele fragmentów w jednym pliku
W pliku _helpers.tpl można umieścić dowolną liczbę bloków define. Warto grupować powiązane funkcje pomocnicze, aby plik był łatwy do przeglądania.
{{- define "mychart.name" -}}
my-app
{{- end -}}
{{- define "mychart.fullname" -}}
my-app-prod
{{- end -}}Fragmenty tworzą większe charty
W miarę rozrastania się chartu fragmenty pomagają zachować spójność powielanych etykiet i nazw. Wystarczy zmienić funkcję pomocniczą raz, aby zaktualizować każdy używający jej manifest.
Definiowanie to dopiero połowa pracy
Samo define nie wykonuje żadnego działania. Następnym krokiem jest wstawienie go do rzeczywistych manifestów za pomocą include lub template, czym zajmuje się następna lekcja.
Szybki test
Dodali Państwo blok define, ale wyrenderowany wynik jest pusty. Dlaczego?
Podsumowanie: definiowanie fragmentów
Poznali Państwo sposób deklarowania wielokrotnego użytku bloków za pomocą define, nadawania im nazw w formie chart.purpose oraz przechowywania ich w _helpers.tpl. Następnie nauczą się Państwo je wywoływać. 🧩
Ucz się YAML dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Definiowanie partial za pomocą define” jest bezpłatna?
Tak — pełny tekst „Definiowanie partial za pomocą define” 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 Helm Academy, przejdź na CoddyKit PRO. Kurs Helm Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Definiowanie partial za pomocą define”?
Deklarowanie wielokrotnego użytku nazwanego bloku szablonu. Ćwiczysz Helm Academy 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ąć Helm Academy?
Nie wymagamy żadnego doświadczenia. Helm Academy 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 „Definiowanie partial za pomocą define”?
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 Helm Academy?
Tak. Każda lekcja Helm Academy 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
- Definiowanie partial za pomocą define
- Wstawianie partiali za pomocą template i include
- Standardowe helpery Fullname i Labels
- Przekazywanie zakresu do nazwanego szablonu