diff --git a/README.md b/README.md index 9f06bab..1309e49 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,28 @@ # ArgoCD GitOps Repository -This repository contains ArgoCD Application definitions and Helm values for deploying applications to the home-server Kubernetes cluster. +This repository contains ArgoCD Application definitions for deploying applications to the home-server Kubernetes cluster. ## Structure ``` argocd/ -├── apps/ # ArgoCD Application manifests -│ └── monitoring.yaml # Monitoring stack (Prometheus + Grafana) -├── charts/ # Helm chart values +├── apps.yaml # Root App of Apps (bootstrapped by Ansible) +├── apps/ # Application definitions │ └── monitoring/ -│ └── values.yaml # kube-prometheus-stack values -└── README.md +│ └── monitoring.yaml # Prometheus + Grafana stack +└── charts/ # Helm chart values + └── monitoring/ + └── values.yaml ``` -## Usage +## How It Works -1. Push changes to this repo -2. ArgoCD will automatically sync and deploy +1. **Ansible** bootstraps the root `apps` Application +2. The root app syncs `apps/` directory recursively +3. Any Application manifest added to `apps/` is auto-deployed -## Applications +## Adding New Applications -### Monitoring -- **Prometheus**: Metrics collection and alerting -- **Grafana**: Dashboards and visualization -- **Alertmanager**: Alert routing and management +1. Create a new directory under `apps/` +2. Add your Application manifest (e.g., `apps/myapp/myapp.yaml`) +3. Push to Git - ArgoCD syncs automatically diff --git a/apps.yaml b/apps.yaml new file mode 100644 index 0000000..ba86be9 --- /dev/null +++ b/apps.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: apps + namespace: argocd +spec: + project: default + source: + repoURL: https://git.svc.pguia.com/guipguia/argocd.git + targetRevision: HEAD + path: apps + directory: + recurse: true + destination: + server: https://kubernetes.default.svc + namespace: argocd + syncPolicy: + automated: + prune: true + selfHeal: true