ArgoCD #
Argo CD ist ein deklaratives GitOps-Continuous-Delivery-Tool für Kubernetes. Es automatisiert die Bereitstellung der gewünschten Anwendungszustände in angegebenen Zielumgebungen.
Status #
Deployment #
Komponenten #
Diese Argo CD-Bereitstellung umfasst die Kernkomponenten von Argo CD:
- Argo CD Server: Die zentrale Komponente, die die Web-UI, API und gRPC-Server bereitstellt.
- Application Controller: Überwacht laufend Anwendungen und vergleicht ihren aktuellen Zustand mit dem gewünschten Zustand im Git-Repository.
- Repo Server: Ein interner Dienst, der Git-Repositories verwaltet und Anwendungsmanifeste generiert.
- Dex: Ein Identitätsdienst, der die Authentifizierung über verschiedene Identitätsanbieter (z.B. Authentik) ermöglicht.
- Redis: Ein In-Memory-Datenspeicher, der von Argo CD für Caching verwendet wird.
Konfiguration #
Die Bereitstellung wird durch Kustomize verwaltet und nutzt das offizielle Argo CD Helm-Chart.
- Helm Chart:
argo-cd - Chart-Repository:
https://argoproj.github.io/argo-helm
Lokale Anpassungen #
- Die
values.yaml-Datei konfiguriert die Argo CD-Instanz, einschließlich der Integration mit Authentik für die Authentifizierung. - Die Bereitstellung wird durch Keel automatisch aktualisiert, wie durch die Annotationen in
values.yamldefiniert. - Die Datei
namespace.yamlstellt denargocd-Namespace sicher. - Zusätzliche Repository-Definitionen sind in
repos.yamlenthalten. - TLS-Zertifikate werden über
certs.yamlverwaltet.
Wichtige Einstellungen #
- Ingress: Der Zugriff auf die ArgoCD-Weboberfläche wird über einen Ingress mit dem Hostnamen
argocd.zyria.deermöglicht und durch Traefik verwaltet. - Authentifizierung: Die Benutzerauthentifizierung erfolgt über Authentik als OIDC-Provider. Dies ermöglicht Single Sign-On für den Zugriff auf ArgoCD.
- RBAC: Die Rollenbasierte Zugriffskontrolle ist so konfiguriert, dass Benutzer mit der Gruppe
authentik AdminsAdministratorrechte in ArgoCD erhalten. - Status Badge: Die Status-Badge-Funktion ist aktiviert, um den Synchronisationsstatus von Anwendungen extern anzuzeigen.
Installation #
Der Dienst wird als Helm-Chart bereitgestellt und durch die kustomization.yaml-Datei verwaltet.
1kubectl kustomize --enable-helm apps/argocd | kubectl apply -n argocd -f -
Quellen #
Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein Ingress-Controller (z.B. Traefik) für den externen Zugriff.
- Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
- Authentik für die Authentifizierung.