Onboarding journey
Add a new app
Six steps from an idea to a Healthy workload on the cluster. Conventions do the heavy lifting — follow them and the platform handles the rest.
Conventions to obey
- ▸ BSN format: app + 4 digits (7 chars, e.g. app1004)
- ▸ one namespace per app-env, e.g. app1001-dev
- ▸ one private IAC repo per app: rhels/IAC.app1001
-
Pick a BSN
Choose the next free business service number — "app" plus four digits, exactly 7 characters, e.g. app1004. The BSN is the identity of everything that follows.
app1004 # "app" + 4 digits = the BSN -
Create the IaC repo
Create one private repo per app: rhels/IAC.<bsn>. This repo is the single source of truth for the app’s desired state — manifests, overlays, and the pinned image digest.
rhels/IAC.app1004 -
Declare the namespace
One namespace per app-env, e.g. app1004-dev. The GitOps root app’s ApplicationSet derives destination namespaces from the BSN, so naming it right is the whole integration.
app1004-dev -
Describe the workload
Commit the Deployment, Service, and any Routes or ConfigMaps to the IaC repo. Keep it declarative — the cluster converges to what Git says.
-
Ship through the pipeline
Push code → the self-hosted runner builds the image → the digest pin lands in the IaC repo (blocked today, HTTP 403 — #107 final mile) → Argo CD syncs it to CRC. Images are already signed (Cosign); Kyverno admission audits now, enforces next.
-
Watch it go green
Argo CD reports the Application’s health and sync status. Healthy means the cluster matches Git — the journey is done.
What you get
A row in the inventory’s application table, a namespace only you own, GitOps-managed deploys, metrics in Grafana — and, once the signed supply chain lands, admission-gated signed images by default. No tickets, no exceptions: the BSN is the process.
Fin
You finished the book.
End of the book. You now know the lab end to end: two planes, one GitOps spine, a pipeline that ships, a watchtower that sees, and a process — the BSN — that turns ideas into workloads. Go build one.
← Back to the cover