Generator values.yaml (Helm)
Parametry wykresu Helm dla aplikacji w Kubernetes
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator values.yaml — konfiguracja wdrożenia w Kubernetes
Helm to menedżer pakietów dla Kubernetes. Plik values.yaml zawiera parametry wykresu — obraz, liczbę replik, zasoby i konfigurację wejścia. Ten generator tworzy gotowy szablon.
Co zawiera plik?
| Sekcja | Parametry |
|---|---|
| image | repozytorium, tag, pullPolicy |
| replicaCount | liczba kopii aplikacji |
| service | typ usługi i port |
| resources | limity i żądania CPU oraz pamięci |
| ingress | domena i ścieżki routingu |
Typy usług
- ClusterIP — dostęp tylko wewnątrz klastra (domyślny).
- NodePort — wystawia usługę na porcie każdego węzła.
- LoadBalancer — tworzy zewnętrzny balanser (np. w chmurze).
Uruchomienie
Umieść plik w katalogu wykresu i użyj:
helm install moja-aplikacja ./chart -f values.yaml
Jak generator zamienia pola formularza na values.yaml
Generator nie tworzy manifestów Kubernetes ani nie szablonuje chartu. Zbiera wartości z formularza i zapisuje je jako dokument YAML w strukturze map, którą Helm odczytuje jako .Values. Każde pole formularza odpowiada ścieżce w drzewie, na przykład image.repository, service.type albo resources.requests.cpu. Zagnieżdżenie wynika z wcięć, a typ wartości z zapisu: liczba, tekst, boolean albo ilość.
Podczas wdrożenia Helm łączy values.yaml z chartu z plikami przekazanymi przez -f oraz nadpisaniami --set. Wartości z -f mają wyższy priorytet niż domyślne, a --set zwykle wygrywa z plikiem. Szablony chartu odczytują finalny zestaw przez .Values i podstawiają go do manifestów. Dlatego generator porządkuje tylko warstwę danych, a nie logikę szablonów.
Poprawny YAML wymaga spójnych wcięć i typów. Jeśli zamiast liczby pojawi się tekst, szablon może porównywać wartości niepoprawnie albo Helm zwróci błąd. Generator pilnuje formatu, ale nie zna wymagań Twojego chartu, więc nazwy kluczy i struktura muszą odpowiadać temu, czego oczekują szablony.
Przykład krok po kroku: wartości dla aplikacji sklepu
- Ustal obraz. Wpisz repozytorium registry.example.com/sklep, tag 1.4.2 i pullPolicy IfNotPresent. Generator zapisze je w sekcji image.
- Ustaw repliki. Podaj replicaCount: 3. To trzy kopie aplikacji; przy request pamięci 128Mi na replikę łączny request wyniesie 384Mi.
- Skonfiguruj usługę. Wybierz service.type ClusterIP, port 80 i targetPort 8080. Ruch do portu 80 usługi trafi do procesu nasłuchującego na 8080 w kontenerze.
- Dodaj zasoby. Ustaw requests.cpu 100m, requests.memory 128Mi, limits.cpu 500m i limits.memory 512Mi. Dla 3 replik sumy wyniosą: CPU requests 300m, CPU limits 1500m, pamięć requests 384Mi, pamięć limits 1536Mi, czyli 1,5Gi.
- Włącz ingress. Podaj host sklep.example.com i ścieżkę /. Generator utworzy sekcję ingress z regułą routingu.
- Wygeneruj plik i wdroż. Zapisz wynik jako values.yaml, a następnie wykonaj helm install sklep ./chart -f values.yaml. Helm połączy te wartości z domyślnymi z chartu i wyrenderuje manifesty.
Pola values.yaml, typy i skutek w szablonach
| Pole | Typ wartości | Co zmienia w Helm |
|---|---|---|
| image.repository | tekst | Ścieżka repozytorium obrazu, na przykład registry.example.com/sklep. |
| image.tag | tekst | Wersja obrazu; pusta wartość lub latest utrudnia odtwarzalność wdrożenia. |
| image.pullPolicy | tekst | Decyduje, kiedy kubelet pobiera obraz: Always, IfNotPresent albo Never. |
| replicaCount | liczba całkowita | Liczba replik w Deployment lub StatefulSet; wpływa na sumę zasobów. |
| service.type | tekst | ClusterIP, NodePort lub LoadBalancer; steruje sposobem ekspozycji usługi. |
| service.port | liczba całkowita | Port usługi widoczny w klastrze; targetPort kontenera często jest inny. |
| resources.requests.cpu | ilość | Minimalny przydział CPU dla schedulera; wpływa na rozmieszczenie podów. |
| ingress.enabled | boolean | Włącza lub wyłącza tworzenie Ingress oraz reguł host i path. |
Praktyczne wskazówki przy generowaniu values.yaml
- Trzymaj wartości domyślne w chartcie. Plik z generatora traktuj jako nadpisanie dla konkretnego środowiska, a nie jako jedyne źródło prawdy. Dzięki temu chart pozostaje użyteczny także bez dodatkowego pliku.
- Rozdzielaj środowiska plikami. Przygotuj osobne values-dev.yaml i values-prod.yaml, jeśli konfiguracje różnią się liczbą replik, zasobami lub ingressem. Łatwiej wtedy śledzić zmiany i ograniczyć przypadkowe wdrożenie złej wersji.
- Sprawdzaj render przed instalacją. Użyj helm template oraz helm lint, aby zobaczyć, jakie manifesty powstaną z połączonych wartości. Dopiero potem wykonuj helm install lub helm upgrade.
- Nie wpisuj sekretów. Hasła, tokeny i klucze powinny trafiać do Secret, zewnętrznego menedżera albo bezpiecznego mechanizmu przekazywania. values.yaml jest jawny i często ląduje w repozytorium.
- Nazywaj klucze zgodnie z chartem. Jeśli szablon odwołuje się do .Values.app.image.repository, nie zmieniaj tej ścieżki na imageRepository. Generator nie poprawi nazw, które nie pasują do szablonów.
Ograniczenia generatora i czynniki zaburzające wynik
- Nie waliduje szablonów chartu. Poprawny YAML nie gwarantuje, że chart używa dokładnie tych kluczy i typów. Błąd może pojawić się dopiero podczas helm template albo helm install.
- Nie zna domyślnych wartości chartu. Generator nie pobiera values.yaml z repozytorium ani zależności. Jeśli pominiesz pole, Helm użyje wartości z chartu, a nie z formularza.
- Nie zarządza sekretami. Wartości wpisane do pliku są jawne. Przekazanie hasła przez values.yaml może naruszać zasady bezpieczeństwa i pozostawiać dane w historii wdrożeń.
- Nie rozstrzyga konfliktów priorytetów. Przy wielu plikach -f oraz opcjach --set wynik zależy od kolejności i sposobu nadpisywania. Ten sam formularz może dać inny efekt końcowy w zależności od polecenia Helm.
Najczęstsze pytania
Czym jest wykres Helm?
To paczka zawierająca szablony manifestów Kubernetes i domyślne wartości. Dzięki temu jedno polecenie wdraża całą aplikację z jej zależnościami.
Czy muszę używać ingress?
Nie. Ingress przydaje się, gdy chcesz wystawić aplikację pod domeną przez kontroler wejścia (np. nginx-ingress).
Jak ustawić limity zasobów?
Warto zaczynać od skromnych żądań (requests) i limitów odpowiadających realnemu zużyciu. Zbyt niskie limity powodują restarty (OOMKilled).
Czy values.yaml to to samo co Chart.yaml?
Nie. Chart.yaml zawiera metadane chartu, takie jak nazwa i wersja, a values.yaml przechowuje parametry przekazywane do szablonów. Oba pliki pełnią inną rolę i nie należy ich mylić.
Jak nadpisać pojedynczą wartość z values.yaml?
Użyj opcji --set, na przykład helm install sklep ./chart --set replicaCount=3. Pamiętaj, że --set zwykle ma wyższy priorytet niż wartości z pliku -f.
Czy można mieć wiele plików values.yaml?
Tak. Helm przyjmuje wiele plików przez -f, a wartości z późniejszych plików nadpisują wcześniejsze. Dobrą praktyką jest osobny plik dla każdego środowiska.
Dlaczego Helm nie widzi mojej wartości?
Najczęściej klucz nie zgadza się ze ścieżką używaną w szablonie, typ wartości jest nieprawidłowy albo nastąpiło nadpisanie przez --set lub inny plik values.yaml. Sprawdź render poleceniem helm template.
Czy wartości z values.yaml są bezpieczne?
Nie, jeśli plik trafia do repozytorium. Jest jawny, więc hasła i tokeny powinny być przekazywane przez Secret, zewnętrzny system albo bezpieczne źródło, a nie wpisywane na stałe.