Mentionsy Mentionsy
Everything as code
Everything as code

Odcinek 7 - Flux, ArgoCD - jak zacząc pracę z uzyciem GitOps ?

02.07.2024 ·8 min 48 s

Czym jest metodyka GitOps ? Jakich narzędzi do tego podejścia moglibyśmy użyć ? Jakie są różnice między dwoma, tytułowymi rozwiązaniami ? Odpowiedzi na te pytania znajdziesz w kolejnym odcinku podcast, zaś kod źródłowy oraz linki do materiałów są dostępne w https://github.com/sebastianczech/podcast-everything-as-a-code/tree/main/episode-007.

Pierwszy z nich został wydewelopowany przez Weaveworks i jest obecnie częścią CNCF-a, czyli Cloud Native Computing Foundation. ArgoCD również jest częścią CNCFE, ale był na początku dewelopowany przez Intuit. Co łączy oba zarzędzi? Przede wszystkim to, że bardzo mocno integrują się z Kubernetesem, czyli w środowisku, w którym mamy Kubernetesa te narzędzia sprawdzą się na pewno świetnie. Flux wspiera natywnie Helma i Customizer, ArgoCD wspiera troszkę więcej rozwiązań, bowiem Cassoneta, JSONeta oraz zwykłe pliki yamlowe.

Różnicą między tymi dwoma narzędziami jest np. to, że Flux nie posiada żadnego UI, natomiast ArgoCD posiada interfejs webowy, więc jeśli ktoś preferuje taki sposób konfiguracji narzędzi, to ArgoCD do tego wydaje się być lepszy, bo posiada taki interfejs. Ja osobiście wolę robić wszystko za pomocą kodu i skryptów, więc brak UI w Fluxie nie jest argumentem, który neguje użycie tego narzędzia. Oczywiście oba zarzędzi świetnie się zorganizują z serwerem Git, bo przecież to jest podstawą metodyki GitOps. Jeśli chodzi o rozwiązania dla zespółów pracujących w korporacjach, to tutaj wydaje się, że ArgoCD ma troszkę więcej możliwości, takie jak wsparcie do SSO, RBAC-a i możliwość zarządzania wieloma klastrami Kubernetes.

Jak w ogóle zacząć pracę z GitOps? Z mojego punktu widzenia i z racji tego, że te narzędzia, które są dostępne z reguły są związane z Kubernetesem, najlepszym sposobem rozpoczęcia pracy z metodyką GitOps jest właśnie zrobienie to w środowisku, w którym mamy Kubernetesa. Ciężko jest to zrobić w środowiskach, które Kubernetesa nie mają, bo tych narzędzi jest niewiele.

W narzędziu Flux CLI mamy komendę check, która pozwala nam zweryfikować klaster Kubernetes przed rozpoczęciem instalacji, więc zalecam wykonanie tego checka przed rozpoczęciem wdrożenia Fluxa w klastrze. W kolejnym kroku, gdy już mamy wyosportowane dane do użytkowania w GitHubie, przygotowujemy komendę Flux bootstrap, która instaluje Fluxa w naszym klastrze Kubernetes. Kolejnym krokiem jest to, by aplikację, którą chcemy zarządzać za pomocą GitOps, tą aplikację odpowiednio skonfigurować. I do tego celu służy komenda Flux Create Source, a następnie Flux Create Customization.

Pokazano wszystkie 4 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.