Skip to content

v1.6.0 — industry40 demo app via app-of-apps

Choose a tag to compare

@bogdandragosvasile bogdandragosvasile released this 20 Apr 11:58
· 6 commits to main since this release

Highlights

First end-to-end demonstration of the canonical app-of-apps pattern on the landing zone — a new demo application (`industry40`) serving an HTML history of the four industrial revolutions at http://industry40.local.

What the pattern looks like in practice

```
gitops-infra (this repo)
├── apps/
│ ├── root-app.yaml ← one Application that syncs apps/*
│ ├── industry40.yaml ← points at platform/industry40
│ └── ...
└── manifests/
└── argocd/values.yaml ← declares the platform/industry40 repo
so argocd-repo-server has creds

platform/industry40 (new Gitea repo — NOT in this tree)
├── Dockerfile + index.html ← the app itself
├── build.sh ← docker build + ctr import
├── manifests/ ← namespace, deployment, service, ingress
└── README.md
```

No part of the application — not the Dockerfile, not the HTML, not the Kubernetes manifests — lives in gitops-infra. The only cross-reference is the `Application` CR at `apps/industry40.yaml`.

What's new

Added

  • `industry40` application (served at http://industry40.local) — nginx-delivered single-file HTML covering Industry 1.0 through 4.0 (and a note on 5.0), with timeline, Nine Pillars grid, and references. Self-contained, themed to match the portal with dark/light toggle.
  • Portal card under Your Applications linking to the new app.
  • `industry40.local` baked into `scripts/setup-hosts.sh` and the CoreDNS NodeHosts patch (cold bootstraps get the hostname out of the box).

Changed

  • `AppProject dev` destinations simplified from a narrow per-namespace list to a single `namespace: '*'`. The old list blocked any new app in a namespace that wasn't pre-declared (`InvalidSpecError`). This is a dev landing zone, not a multi-tenant production cluster — restrict later if you shard users.

To deploy on an existing cluster after upgrading

```bash
git pull

Re-render gitops-infra (adds the new Application + repo credentials)

bash scripts/07-push-gitops-repo.sh

Flush argocd-repo-server so the project + repos refresh immediately

kubectl -n argocd rollout restart deploy argocd-repo-server
```

Then create the `platform/industry40` Gitea repo, push the app contents (see README at platform/industry40), run `bash build.sh` once to build + import the image, and the root app-of-apps picks it up.

Full changelog

See CHANGELOG.md.