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
- URL: https://argo.ssdk8s.xyz
- Port Forward:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Credentials
Username: admin
Password:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Components
| Component | Service | Port | Metrics |
|---|---|---|---|
| argocd-server | argocd-server | 80, 443 | 8083 |
| argocd-repo-server | argocd-repo-server | 8081 | 8084 |
| argocd-application-controller | argocd-application-controller (statefulset) | - | 8082 |
| argocd-applicationset-controller | argocd-applicationset-controller | 7000 | 8080 |
| argocd-dex-server | argocd-dex-server | 5556, 5557 | 5558 |
| argocd-redis | argocd-redis | 6379 | - |
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
- Changes are committed to Git
- Release tag is created
- ArgoCD syncs the changes automatically
- Application state matches Git desired state