Generator ConfigMap (Kubernetes)
Manifest YAML z konfiguracją aplikacji
-
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 ConfigMap Kubernetes
ConfigMap przechowuje niesekretną konfigurację aplikacji: zmienne środowiskowe, pliki konfiguracyjne, parametry. Oddzielenie konfiguracji od obrazu pozwala zmieniać ustawienia bez przebudowy kontenera.
ConfigMap czy Secret?
| ConfigMap | Secret |
|---|---|
| dane niesekretne | hasła, tokeny, klucze |
| przechowywane jawnie | kodowane base64, opcjonalnie szyfrowane |
| np. LOG_LEVEL, APP_ENV | np. DB_PASSWORD, API_KEY |
Jak używać ConfigMap?
- Zapisz manifest jako plik
configmap.yaml. - Zastosuj:
kubectl apply -f configmap.yaml. - W Deployment odwołaj się przez
envFromlubvalueFrom.configMapKeyRef.
Przykład użycia w Deployment
envFrom:
- configMapRef:
name: app-config
Jak działa generator ConfigMap
Generator działa jak formularz, który zamienia dane wejściowe na manifest YAML. Zbiera nazwę obiektu, przestrzeń nazw, etykiety, adnotacje oraz pary klucz-wartość. Następnie układa je w ustalonej kolejności: apiVersion: v1, kind: ConfigMap, metadata i data. Wynik jest zwykłym tekstem YAML, który można skopiować albo pobrać. Narzędzie nie łączy się z klastrem, nie wykonuje kubectl i nie sprawdza, czy obiekt już istnieje.
Mechanizm opiera się na mapowaniu pól formularza na strukturę obiektu. Klucze w sekcji data są tekstowe, a wartości również są traktowane jako tekst. Dlatego liczby, daty i wartości logiczne warto ujmować w cudzysłów, jeśli aplikacja odczytuje je jako stringi. Wartości wieloliniowe, na przykład plik konfiguracyjny, generator może zapisać jako blok skalarny z odpowiednim wcięciem. To ważne, bo YAML jest wrażliwy na spacje i tabulatory.
Zasada jest prosta: generator tylko porządkuje dane w poprawny manifest. Nie interpretuje znaczenia kluczy, nie zna wymagań aplikacji i nie zastępuje walidacji po stronie klastra. Po wygenerowaniu YAML nadal trzeba go sprawdzić, na przykład poleceniem kubectl apply --dry-run=client, oraz upewnić się, że dane nie zawierają informacji wrażliwych. Dzięki temu konfiguracja jest oddzielona od obrazu kontenera i może być wersjonowana razem z manifestami.
Przykład krok po kroku: ConfigMap dla aplikacji webp-config
- W generatorze wpisujesz nazwę webp-config i przestrzeń nazw prod. Dodajesz cztery pary klucz-wartość: APP_ENV=production, LOG_LEVEL=info, MAX_CONNECTIONS=50 oraz TIMEOUT_SECONDS=30.
- Narzędzie zamienia wartości liczbowe na tekst i w YAML zapisuje je w cudzysłowie: 50 i 30. Dzięki temu ConfigMap przechowuje stringi, a nie liczby, co jest wymagane w sekcji data.
- Generator buduje manifest: apiVersion: v1, kind: ConfigMap, sekcję metadata z nazwą i namespace oraz sekcję data z czterema kluczami.
- Sprawdzasz długość sekcji data. Klucze i wartości mają razem 64 znaki: APP_ENV i production to 17, LOG_LEVEL i info to 13, MAX_CONNECTIONS i 50 to 17, TIMEOUT_SECONDS i 30 to 17. Suma: 17 + 13 + 17 + 17 = 64.
- Doliczasz formatowanie YAML: wcięcia, separatory, znaki nowej linii, nagłówek data oraz cudzysłowy wokół wartości liczbowych. Daje to dodatkowe 30 znaków, więc sama sekcja data ma 94 znaki. Po dodaniu nagłówków apiVersion, kind i metadata cały manifest ma 173 znaki.
- Kopiujesz wynik do pliku YAML i wykorzystujesz go w swoim repozytorium lub procesie wdrożeniowym. Przed użyciem warto sprawdzić składnię i upewnić się, że klucze odpowiadają oczekiwaniom aplikacji.
Pola manifestu ConfigMap generowane z formularza
| Pole w manifeście | Typ wartości | Znaczenie i uwagi |
|---|---|---|
| apiVersion | string | Wersja API dla ConfigMap to v1. |
| kind | string | Typ obiektu; dla ConfigMap przyjmuje wartość ConfigMap. |
| metadata.name | string | Nazwa ConfigMap w klastrze, na przykład webp-config. |
| metadata.namespace | string | Przestrzeń nazw, w której obiekt ma zostać utworzony, na przykład prod. |
| metadata.labels | mapa klucz-wartość | Etykiety ułatwiają selekcję i organizację obiektów. |
| metadata.annotations | mapa klucz-wartość | Adnotacje opisowe; nie służą do selekcji, ale mogą nieść metadane. |
| data | mapa klucz-wartość | Niesekretne dane tekstowe; klucze i wartości są traktowane jako stringi. |
Praktyczne wskazówki użycia
- Ustal konwencję nazw kluczy. Wybierz jeden styl, na przykład wielkie litery z podkreśleniami, i trzymaj go we wszystkich środowiskach. Dzięki temu odwołania w Deployment są przewidywalne i łatwiej je wyszukiwać.
- Grupuj ustawienia według aplikacji lub komponentu. Jeden ConfigMap dla całego systemu bywa trudny w utrzymaniu. Lepiej tworzyć mniejsze obiekty, na przykład dla frontendu, backendu i workera.
- Uważaj na typy wartości. Jeśli aplikacja oczekuje stringa, nie polegaj na automatycznej interpretacji YAML. Wartości liczbowe i logiczne zapisuj w cudzysłowie, gdy mają być tekstem.
- Wersjonuj manifest razem z kodem. Zmiany w ConfigMap powinny przechodzić przegląd i mieć historię w repozytorium. To ułatwia rollback oraz audyt konfiguracji.
- Testuj zmiany poza produkcją. Nawet poprawny YAML może wywołać błąd, jeśli aplikacja nie zna nowego klucza albo oczekuje innego formatu. Warto najpierw sprawdzić manifest w środowisku testowym.
Ograniczenia generatora i typowe pułapki
- Brak połączenia z klastrem. Narzędzie generuje tylko YAML. Nie sprawdza, czy nazwa jest już zajęta, czy namespace istnieje i czy masz uprawnienia RBAC.
- Brak walidacji semantycznej. Generator nie wie, jakich kluczy oczekuje aplikacja. Poprawny YAML może nadal zawierać literówkę w nazwie klucza, która ujawni się dopiero w środowisku.
- Brak szyfrowania i kontroli sekretów. Wartości wpisane do formularza pozostają jawne w manifeście. Jeśli przypadkowo umieścisz tam hasło, trafi ono do pliku i historii repozytorium.
- Wrażliwość YAML na formatowanie. Wcięcia, znaki specjalne i wieloliniowe wartości mogą zostać źle wklejone. Generator nie zastąpi sprawdzenia składni ani testu na klastrze.
Najczęstsze pytania
Czy ConfigMap aktualizuje się automatycznie?
Zmiany w ConfigMap nie restartują automatycznie podów. Aplikacje czytające zmienne środowiskowe wymagają ponownego uruchomienia; pliki montowane jako wolumen aktualizują się z opóźnieniem.
Czy jest limit rozmiaru?
Praktycznie ok. 1 MB na obiekt ConfigMap. Większe dane trzymaj w wolumenach lub zewnętrznym magazynie.
Jak odczytać ConfigMap z klastra?
Poleceniem kubectl get configmap app-config -o yaml.
Czy generator ConfigMap obsługuje wiele plików konfiguracyjnych?
Tak, jeśli narzędzie pozwala dodać wieloliniową wartość. Każdy plik możesz umieścić pod osobnym kluczem, na przykład app.properties albo nginx.conf. Pamiętaj wtedy o poprawnych wcięciach bloku YAML.
Czy ConfigMap można edytować po utworzeniu w klastrze?
Tak. Możesz zmienić manifest i zastosować go ponownie albo użyć kubectl edit configmap. Sama zmiana nie restartuje jednak podów, które czytają zmienne środowiskowe.
Czy w jednym pliku YAML może być kilka ConfigMap?
Tak. Dokumenty YAML rozdziela się linią ---. Dzięki temu możesz trzymać obok siebie kilka ConfigMap, na przykład dla różnych środowisk lub komponentów.
Czy ConfigMap nadaje się do przechowywania haseł?
Nie. ConfigMap przechowuje dane jawnie, więc hasła, tokeny i klucze prywatne powinny trafić do Secret. Secret również wymaga odpowiedniego zarządzania dostępem i szyfrowania w klastrze.
Jak sprawdzić, czy wygenerowany YAML jest poprawny?
Najlepiej użyć kubectl apply --dry-run=client -f plik.yaml, aby sprawdzić składnię bez zmiany klastra. Dodatkowo warto zweryfikować klucze względem dokumentacji aplikacji.