GitOps Overview
The MATIH platform supports GitOps-based deployment using ArgoCD as the continuous delivery engine. ArgoCD monitors the Git repository for changes to Helm charts and Kubernetes manifests, then automatically synchronizes the desired state to the cluster.
GitOps Architecture
Git Repository (source of truth)
|
v
ArgoCD Server ──> Kubernetes Cluster
| |
+── Application Sets +── matih-control-plane
+── App of Apps +── matih-data-plane
+── Platform Versions +── matih-monitoringSub-Pages
| Page | Description |
|---|---|
| ArgoCD Setup | Installation, configuration, and RBAC |
| Application Sets | Dynamic application generation from templates |
| Platform Versions | Version management and rollback strategy |
GitOps vs Script-Based Deployment
| Aspect | GitOps (ArgoCD) | Script-Based (cd-new.sh) |
|---|---|---|
| Trigger | Git push | Manual or CI trigger |
| State tracking | ArgoCD + Git | File-based state |
| Rollback | Git revert | Helm rollback |
| Drift detection | Automatic | Manual |
| Multi-cluster | Native | Custom scripting |
| Best for | Production, multi-environment | Dev, initial setup |
Workflow Files
| File | Purpose |
|---|---|
.github/work-flows/cd-gitops.yml | Triggers ArgoCD sync on push to main |
.github/work-flows/tenant-deploy.yml | Per-tenant deployment via GitOps |
Key Concepts
| Concept | Description |
|---|---|
| Application | A single Helm release managed by ArgoCD |
| ApplicationSet | A template that generates Applications dynamically |
| App of Apps | A parent Application that manages child Applications |
| Sync Policy | Controls automatic vs manual sync behavior |
| Health Assessment | ArgoCD's view of resource health status |