Deployment model · one service, end to end

Draft: not yet agreed. Nothing here is settled until you answer the open points.

Example: service tin on platform nitroso · Bun API + worker · Postgres + queue

How a change travels

Almost every change is a release: commit → CI → one version → Kargo → Argo CD, one landscape after another. Secrets are the exception: they skip git.

  • Promotion order: pichu → pikachu → raichu and ampharos together. Each step waits until the last one is healthy. DECIDED · ARCH §8; carbon PoC TESTED · PoC D3: 112 s
  • Config is inside the app chart, so a config change is a release too. DECIDED · HW; R20 CONTRADICTION · built bakes config into the image
Pick a change. The path redraws.
  • person
  • CI / CD
  • Kargo
  • Argo CD
  • operator
  • tool
  • pod / ESO

A merge to main becomes one version, which walks through the landscapes on its own.

Code change: 7 steps1personmerge a PR to main2CI / CDreleaser tags v1.4.33CI / CDpush image + 2 charts4KargoFreight when all 3 match5Kargowrite pin in pichu row6Argo CDsync both charts7Kargowait for healthy, next
  1. person Merge to nitroso.tin main. Pre-commit and CI ran lint, types, tests, chart checks. BUILT · ci.yaml
  2. CI / CD After green CI, releaser reads the commit messages, writes Changelog.md, tags v1.4.3. DECIDED · R10 BUILT · release.yaml
  3. CI / CD CD builds the image and packs both charts at 1.4.3 (config copied into the app chart). DECIDED · ARCH §8 CONTRADICTION · P1 built CD skips the primordial chart
  4. Kargo The Warehouse sees all three at 1.4.3 and makes Freight. DECIDED · FLEET L520 PoC TESTED · spike A
  5. Kargo The pichu Stage pushes 1.4.3 into tin's pichu row in fleet. No PR. DECIDED · OD D53
  6. Argo CD Primordial chart → Primordial (records); app chart → every pichu cluster: db-init Job first, then a rolling update. DECIDED · ARCH §8; R20
  7. Kargo When every pichu deploy is healthy: pikachu, then raichu and ampharos together. PoC TESTED · PoC D3: 112 s for 3 landscapes

Per landscape: Same version everywhere; each landscape takes its own values.<landscape>.yaml and config/<landscape> file. A broken version stops at its stage. PoC TESTED · spike A

All pages