2026-08-22 17:30:45 +01:00
|
|
|
# The app-of-apps. This is the ONE manifest in this entire repo that you
|
|
|
|
|
# apply by hand, one time, with `kubectl apply -f`. It's the seed: after
|
|
|
|
|
# this exists, Argo CD takes over and everything else in the apps/ folder
|
|
|
|
|
# gets applied automatically, because this Application's job is to watch
|
|
|
|
|
# that folder.
|
|
|
|
|
#
|
2026-09-03 01:54:37 +01:00
|
|
|
# The repoURL below is this cluster's public Gitea repository. Argo CD clones
|
|
|
|
|
# it over HTTPS from inside the cluster, so anonymous read access must keep
|
|
|
|
|
# working even though pushes still authenticate over SSH.
|
2026-08-22 17:30:45 +01:00
|
|
|
#
|
|
|
|
|
# >> Ask Claude: "why does the app-of-apps live in argocd/app-of-apps
|
|
|
|
|
# instead of inside apps/ with everything else?" before moving on — the
|
|
|
|
|
# answer (avoiding a directory managing itself) is worth understanding.
|
|
|
|
|
apiVersion: argoproj.io/v1alpha1
|
|
|
|
|
kind: Application
|
|
|
|
|
metadata:
|
|
|
|
|
name: app-of-apps
|
|
|
|
|
namespace: argocd
|
|
|
|
|
spec:
|
|
|
|
|
project: default
|
|
|
|
|
|
|
|
|
|
source:
|
2026-09-04 12:42:43 +00:00
|
|
|
repoURL: https://tea.ahmza.com/ahmza.com/k8s-starter-pack.git
|
2026-08-22 17:30:45 +01:00
|
|
|
targetRevision: main
|
|
|
|
|
path: apps
|
|
|
|
|
directory:
|
|
|
|
|
# recurse: false is deliberate. apps/ contains both Application
|
|
|
|
|
# manifests (apps/demo.yaml) AND subfolders full of the actual
|
|
|
|
|
# workload manifests they point to (apps/demo/*.yaml). Without this,
|
|
|
|
|
# Argo CD would try to apply everything inside apps/demo/ directly
|
|
|
|
|
# under the app-of-apps too — duplicating work the demo Application
|
|
|
|
|
# already does, and blurring which Application actually owns what.
|
|
|
|
|
# recurse: false means "only look at files directly in apps/, ignore
|
|
|
|
|
# subfolders" — so the app-of-apps only ever sees the Application
|
|
|
|
|
# manifests, never the workloads themselves.
|
|
|
|
|
recurse: false
|
|
|
|
|
|
|
|
|
|
destination:
|
|
|
|
|
server: https://kubernetes.default.svc
|
|
|
|
|
namespace: argocd
|
|
|
|
|
|
|
|
|
|
syncPolicy:
|
|
|
|
|
automated:
|
|
|
|
|
prune: true
|
|
|
|
|
selfHeal: true
|
|
|
|
|
syncOptions:
|
|
|
|
|
- CreateNamespace=true
|