Overview
ArgoCD implements GitOps-based continuous delivery, automatically syncing Kubernetes manifests from Git repositories to the cluster. It manages application deployments using ApplicationSets for dynamic application generation.Installation
ArgoCD is bootstrapped viaargocd-bootstrap.sh:
Configuration
Nixidy Module (nixidy/env/local/argocd.nix)
Key Settings
| Setting | Value | Purpose |
|---|---|---|
server.replicas | 1 | Single instance for local dev |
service.type | NodePort | Direct host access |
server.insecure | true | HTTP mode (no TLS locally) |
dex.enabled | false | No SSO in local env |
redis.enabled | true | Session caching |
Access
Web UI
- URL: http://localhost:30080
- Username:
admin - Password: Retrieved from secret
Ports
| Port | Protocol | Purpose |
|---|---|---|
| 30080 | HTTP | Web UI and API |
| 30443 | HTTPS | Secure access (not used locally) |
Components
ArgoCD consists of several components:Application Controller
StatefulSet that monitors Git repositories and reconciles cluster state:- Compares desired state (Git) with live state (cluster)
- Performs sync operations
- Detects configuration drift
Repo Server
Generates Kubernetes manifests from source repositories:- Helm chart rendering
- Kustomize builds
- Directory-based applications
Server
API server and Web UI:- REST/gRPC API
- Web interface
- CLI authentication
ApplicationSet Controller
Dynamically generates Applications based on templates and generators.Redis
Caches repository data and sessions for performance.ApplicationSet
The infrastructure uses ApplicationSet for dynamic application deployment (argocd/services-appset.yaml):
Auto-Sync Behavior
- prune: Removes resources deleted from Git
- selfHeal: Reverts manual changes to match Git
Manifest Generation
Manifests are pre-generated using nixidy:manifests/argocd/.
Integration
Nixidy
ArgoCD configuration is defined in Nix expressions and rendered to Kubernetes YAML via nixidy. This provides:- Type-safe configuration
- Reproducible builds
- Helm chart management
Application Repositories
ArgoCD watches the microservice-app repository and automatically deploys services when manifests change.Observability
ArgoCD metrics are exposed and scraped by Prometheus:- Application sync status
- Sync history
- Repository fetch metrics
- API request metrics