apps-in-apps
App-of-Apps Helm chart. Renders argoproj.io/v1alpha1 Application resources
for every entry configured under applications in values.yaml,
including the valheim-gitops
stack.
Because this repository is a Helm chart, it can be registered in ArgoCD as its
own Application (Helm source), which then manages all child Applications declared
in values.yaml.
Bootstrapping
-
Make sure ArgoCD is installed and its API server can reach
git.smokyzone.de(add repo credentials if the repos are private). -
Apply the one-time root Application once:
kubectl apply -f bootstrap/root-application.yamlThis registers
apps-in-appsitself as an ArgoCD Application using this git repo as a Helm chart source, with automated sync/prune/self-heal. -
ArgoCD renders
templates/application.yaml, which creates one child Application per entry inapplications(currently:valheim, pointing at thevalheim-gitopschart).
Adding another app
Add an entry to applications in values.yaml:
applications:
- name: my-app
enabled: true
source:
repoURL: https://git.smokyzone.de/SmokyZone/my-app.git
targetRevision: main
path: .
destination:
server: https://kubernetes.default.svc
namespace: my-app
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
Commit and push — ArgoCD picks it up on the next sync.
Structure
apps-in-apps/
├── Chart.yaml # Helm chart metadata
├── values.yaml # List of managed Applications
├── templates/
│ └── application.yaml # Renders one Application per entry
└── bootstrap/
└── root-application.yaml # One-time manifest to register this chart in ArgoCD