Centralized GitOps repository for the UpCloud Kubernetes cluster. ArgoCD watches this repo and automatically applies changes to the cluster.
gitops-infra/
├── root-app.yaml # Root ArgoCD Application (App of Apps) — apply manually once
├── argocd-apps/ # One ArgoCD Application per service — managed by root-app
└── apps/ # Kubernetes manifests per service
├── ai-whatif/ # AI What-If service (React frontend + R/Plumber backend)
└── cluster-issuer/ # Let's Encrypt ClusterIssuer for SSL certificates
- Create
apps/<service-name>/with manifests (namespace, deployment, service, ingress) - Create
argocd-apps/<service-name>.yamlpointing to that folder - Commit — ArgoCD deploys automatically
Secrets are never committed. Apply them manually:
kubectl apply -f secret.yaml -n <namespace>- ingress-nginx
- cert-manager
- ArgoCD