Co to jest Helm?

Kontynuujac wycieczke po tematach kubernetsowych musimy też poznać narzędzie Helm, które pomoże jeszcze bardziej zautomatyozować nasze aplikacje odpalane w klastrach k8s.

Helm to ogólnie mówiąc menadżer pakietów dla Kubernetesa. Helm powstał jako zewnętrzny projekt odpowiadający na potrzeba ogarnięcia wszystkich plików YAML, które są niezbędne do postawienia danej aplikacji. Helm pakuje do jednego archiwum wszystkie poki, ułatwia wersjonowanie i parametryzowanie. 

Helm działa tak, że ze swojej maszyny pracujemy z klientem helm w konsoli a ten komunikuje się, już na klastrze Kubernetesowym, do kube-apiservera i ten wdraża (“deployuje”) obiekty opisane w charcie helmowym. 

Helm dostarcza aplikacje w postaci w paczce tar i to jest wlasciwie zestaw plików YAML, które posiadają szablony ze zmiennymi tak, aby dać możliwość szerokiego skonfigurowania i dostosowania aplikacji pod siebie. Każdy chart zawiera domyślna strukturę, która przede wszystkim składa się na :

  • plik opisujący konfigurację (Chart.yaml)
  • plik z domyślnymi wartościami (values.yaml)
  • katalog templates, zawierający pliki-szablony dla obiektów kubentesowych (deployment.yaml, ingress.yaml, service.yaml, itp.)

Gotowe paczki aplikacji helma potocznie nazywane chartami możemy znaleźć w wielu publicznych repozytoriach a ich listę znajdziemy na przykład na stronie ArtifactHUB.

Można zaryzykować stwierdzenie, że Helm to kolejny obiekt Kubernetesa.

Tags: