v1.8.0 — Offline-capable demo apps (bundled app-repos)
Highlights
Fresh clones on Linux, WSL2, macOS, and Windows now deploy Headscale and Industry 4.0 end-to-end — no manual Gitea repo creation, no one-off docker build steps. The Application manifests in gitops-repo/apps/ continue to point at platform/* Gitea repos, but the source for those repos now lives inside this repo under app-repos/ and gets mirrored into Gitea automatically on every bootstrap.
What's new
Added — app-repos/
Demo-app sources bundled in:
app-repos/headscale/— manifests + helper scripts + READMEapp-repos/industry40/— Dockerfile + index.html + manifests + build.sh + README
Added — bootstrap phase 07b
scripts/07b-mirror-app-repos.sh iterates every subdirectory of app-repos/, creates the matching Gitea repo under platform/ if missing, and force-pushes the local content. Idempotent.
Added — bootstrap phase 09c
scripts/09c-build-demo-images.sh runs app-repos/*/build.sh where present. Apps using public images (like Headscale) are silently skipped; industry40 builds + ctr imports its nginx image offline.
Changed — scripts/resume.sh
Per-node containerd health probe (docker exec <node> ctr version with timeout) recycles any k3d node whose containerd socket has gone unresponsive. Fixes the mysterious connection refused on /run/k3s/containerd/containerd.sock failures some nodes hit after a Docker-daemon reload — image builds and pulls that previously required a manual docker restart k3d-gitops-local-agent-X now self-heal on resume.
Adding your own demo app
Drop a directory under app-repos/:
app-repos/my-app/
├── manifests/ # k8s YAMLs — path: manifests in the Application
├── Dockerfile # optional
├── build.sh # optional — 09c runs it
└── README.md
Then add a matching Application in gitops-repo/apps/my-app.yaml pointing at http://gitea:3000/${GITEA_ORG}/my-app.git, a repo entry in gitops-repo/manifests/argocd/values.yaml, and bootstrap handles the rest.
Full changelog
See CHANGELOG.md.