CI gates the Helm chart: k8s-lint plus a compose↔chart drift check #168

Closed
opened 2026-09-10 08:59:05 +00:00 by not · 0 comments
Contributor

Outcome: .gitea/workflows/ci.yaml runs make k8s-lint, and a new make k8s-drift fails when infra/docker-compose.yml and infra/helm/big-reference stop describing the same stack.

ADR-0033 shipped the chart with two named costs: "a second deployment description to keep in step with compose — nothing enforces that today; a drift check belongs in CI (follow-up)", and make k8s-lint existing but never being run by CI. So a values typo or an upstream image bump applied to only one of the two files lands unnoticed.

Scope:

  • A k8s job in CI that installs a pinned Helm and runs the chart checks. No cluster needed.
  • make k8s-drift: compare the rendered chart against docker compose config — workload names and resolved container images — with the deviations ADR-0033 forced (the four folded *-init services, the two chart-only bootstrap Jobs) declared explicitly, so a new difference is what fails.

Definition of Done

  • A linked Gitea issue exists (this one).
  • Failing test written and committed first.
  • Implementation makes the test pass.
  • Conventional Commit messages referencing this issue (refs #NN).
  • All Gitea Actions CI jobs green.
  • Docs touched if behaviour, contracts, or operations changed.
  • ADR added in docs/architecture/ if a non-obvious decision was made.
  • This issue closed by the merging PR (closes #NN).
**Outcome:** `.gitea/workflows/ci.yaml` runs `make k8s-lint`, and a new `make k8s-drift` fails when `infra/docker-compose.yml` and `infra/helm/big-reference` stop describing the same stack. ADR-0033 shipped the chart with two named costs: *"a second deployment description to keep in step with compose — nothing enforces that today; a drift check belongs in CI (follow-up)"*, and `make k8s-lint` existing but never being run by CI. So a values typo or an upstream image bump applied to only one of the two files lands unnoticed. Scope: - A `k8s` job in CI that installs a pinned Helm and runs the chart checks. No cluster needed. - `make k8s-drift`: compare the rendered chart against `docker compose config` — workload names and resolved container images — with the deviations ADR-0033 forced (the four folded `*-init` services, the two chart-only bootstrap Jobs) declared explicitly, so a *new* difference is what fails. ## Definition of Done - [ ] A linked Gitea issue exists (this one). - [ ] Failing test written and committed first. - [ ] Implementation makes the test pass. - [ ] Conventional Commit messages referencing this issue (`refs #NN`). - [ ] All Gitea Actions CI jobs green. - [ ] Docs touched if behaviour, contracts, or operations changed. - [ ] ADR added in `docs/architecture/` if a non-obvious decision was made. - [ ] This issue closed by the merging PR (`closes #NN`).
not added this to the Iteration 6 — Production Posture milestone 2026-09-10 08:59:05 +00:00
not added the type:chorearea:infra labels 2026-09-10 08:59:05 +00:00
not closed this issue 2026-09-18 13:25:25 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eho/register-referentie#168