Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

ArgoCD

Inhaltsverzeichnis

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
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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.yaml definiert.
  • Die Datei namespace.yaml stellt den argocd-Namespace sicher.
  • Zusätzliche Repository-Definitionen sind in repos.yaml enthalten.
  • TLS-Zertifikate werden über certs.yaml verwaltet.

Wichtige Einstellungen
#

  • Ingress: Der Zugriff auf die ArgoCD-Weboberfläche wird über einen Ingress mit dem Hostnamen argocd.zyria.de ermö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 Admins Administratorrechte 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.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin