Skip to main content

ArgoCD

Purpose: GitOps continuous delivery platform

Version: v3.3.3 (Helm chart: argo-cd 9.4.10)

Namespace: argocd

Description

ArgoCD watches your Git repository and automatically syncs the desired application state to your Kubernetes cluster. It eliminates the need for manual kubectl apply commands.

Installation

# Via ArgoCD Application (installed by bootstrap)
helm install argo-cd argo/argo-cd -n argocd

Configuration

Configuration file: cluster/dev/argocd-values.yaml

server:
service:
type: LoadBalancer
args:
- --insecure
- --metrics
config:
url: https://argo.ssdk8s.xyz
metrics:
enabled: true
serviceMonitor:
enabled: true

applicationController:
metrics:
enabled: true

repoServer:
metrics:
enabled: true
resources:
requests:
cpu: 250m
memory: 256Mi

applicationSet:
metrics:
enabled: true

Access

Credentials

Username: admin

Password:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Components

ComponentServicePortMetrics
argocd-serverargocd-server80, 4438083
argocd-repo-serverargocd-repo-server80818084
argocd-application-controllerargocd-application-controller (statefulset)-8082
argocd-applicationset-controllerargocd-applicationset-controller70008080
argocd-dex-serverargocd-dex-server5556, 55575558
argocd-redisargocd-redis6379-

Metrics

ArgoCD exposes Prometheus metrics via ServiceMonitors:

  • Server: argocd-server-metrics:8083/metrics
  • Repo Server: argocd-repo-server-metrics:8084/metrics
  • Applicationset Controller: argocd-applicationset-controller:8080/metrics

Prometheus scrapes these automatically via ServiceMonitor with label release: kube-prometheus-stack

GitOps Workflow

  1. Changes are committed to Git
  2. Release tag is created
  3. ArgoCD syncs the changes automatically
  4. Application state matches Git desired state