Definiowanie partial za pomocą define
Deklarowanie wielokrotnego użytku nazwanego bloku szablonu.
Definiowanie partial za pomocą define 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.
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ę DevOps Bootcamp 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
- 142
- Lekcje
- 568
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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Definiowanie partial za pomocą define”?
Deklarowanie wielokrotnego użytku nazwanego bloku szablonu. Ć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 „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 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
- Definiowanie partial za pomocą define
- Wstawianie partiali za pomocą template i include
- Standardowe helpery Fullname i Labels
- Przekazywanie zakresu do nazwanego szablonu