Compare commits
base: eho/register-referentie:ci/168-helm-chart-ci-gate
eho/register-referentie:main
eho/register-referentie:ci/175-deploy-on-merge
eho/register-referentie:feat/177-public-tls-edge
eho/register-referentie:ci/168-helm-chart-ci-gate
eho/register-referentie:docs/169-mkdocs-nav
eho/register-referentie:feat/25-helm-kubernetes-caddy
eho/register-referentie:fix/161-e2e-bounded-and-diagnosable
eho/register-referentie:feat/162-werkbak-live-refresh
eho/register-referentie:feat/132-medewerker-mfa
eho/register-referentie:fix/156-tempo-ingester-healthcheck
eho/register-referentie:feat/153-projection-sourced-from-objecten
eho/register-referentie:feat/152-objecten-publishes-to-nrc
eho/register-referentie:feat/149-acl-writes-registerrecord
eho/register-referentie:feat/141-registerrecord-objecttype
eho/register-referentie:perf/verify-stack-uwsgi-oz-nrc
eho/register-referentie:fix/144-verify-stack-uwsgi
eho/register-referentie:feat/140-objecten-up
eho/register-referentie:feat/139-objecttypen-up
eho/register-referentie:feat/131-default-fill-crud
eho/register-referentie:chore/136-ci-job-summaries
eho/register-referentie:fix/134-verify-stack-scheduling
eho/register-referentie:feat/130-beheer-catalogi
eho/register-referentie:feat/124-metrics-dashboards
eho/register-referentie:ci/127-parallel-jobs
eho/register-referentie:feat/123-distributed-traces
eho/register-referentie:feat/111-self-service-resume
eho/register-referentie:feat/113-acl-zaaktype-by-identificatie
eho/register-referentie:fix/110-compose-local-flow
eho/register-referentie:fix/115-e2e-single-worker
eho/register-referentie:docs/111-backlog-s26
eho/register-referentie:feat/106-close-zaak-on-timeout
eho/register-referentie:feat/103-diploma-upload-documenten
eho/register-referentie:feat/102-document-wait-timeout
eho/register-referentie:feat/14-dmn-diploma-eligibility
eho/register-referentie:feat/15-beoordeling-escalation
eho/register-referentie:fix/portal-nginx-resolver
eho/register-referentie:fix/local-eventsubscriber-acl
eho/register-referentie:feat/12-withdrawal-portal
eho/register-referentie:fix/91-local-compose-parity
eho/register-referentie:feat/12-withdrawal-bff
eho/register-referentie:feat/12-withdrawal-workflow
eho/register-referentie:feat/12-withdrawal
eho/register-referentie:feat/13-behandel-portal
eho/register-referentie:feat/13-behandel-decide
eho/register-referentie:feat/13-behandel-bff-auth-werkbak
eho/register-referentie:feat/13-workflow-user-tasks
eho/register-referentie:feat/13-behandel-decision-model
eho/register-referentie:chore/release-2026.07.0
eho/register-referentie:feat/78-reference-correlation
eho/register-referentie:feat/75-approval-flow
eho/register-referentie:feat/10-openbaar-portal
eho/register-referentie:chore/73-ci-speedups
eho/register-referentie:feat/68-e2e
eho/register-referentie:feat/67-self-service-form
eho/register-referentie:feat/66-api-client
eho/register-referentie:feat/65-nx-workspace
eho/register-referentie:feat/8-bff
eho/register-referentie:feat/6-domain-service
eho/register-referentie:feat/7-event-subscriber-projection
eho/register-referentie:feat/56-nrc-notification-wiring
eho/register-referentie:test/46-acl-openzaak-integration
eho/register-referentie:feat/47-acl-mutation-baseline
eho/register-referentie:ci/30-gitea-actions-ci
eho/register-referentie:feat/5-acl-open-zaak
eho/register-referentie:feat/4-flowable
eho/register-referentie:feat/3-keycloak
eho/register-referentie:feat/2-opennotificaties
eho/register-referentie:feat/2-catalogus-seed
eho/register-referentie:feat/10-openzaak-compose
eho/register-referentie:feat/32-docs-scaffold
eho/register-referentie:feat/31-contributor-workflow
eho/register-referentie:feat/30-gitea-actions-ci
eho/register-referentie:feat/29-bff-docker-compose
eho/register-referentie:chore/remove-bootstrap-scripts
eho/register-referentie:feat/28-bff-health
eho/register-referentie:docs/split-s00
..
compare: eho/register-referentie:9d7e8e5b65dad9ca0c248e1410c019302938c475
eho/register-referentie:ci/175-deploy-on-merge
eho/register-referentie:feat/177-public-tls-edge
eho/register-referentie:main
eho/register-referentie:ci/168-helm-chart-ci-gate
eho/register-referentie:docs/169-mkdocs-nav
eho/register-referentie:feat/25-helm-kubernetes-caddy
eho/register-referentie:fix/161-e2e-bounded-and-diagnosable
eho/register-referentie:feat/162-werkbak-live-refresh
eho/register-referentie:feat/132-medewerker-mfa
eho/register-referentie:fix/156-tempo-ingester-healthcheck
eho/register-referentie:feat/153-projection-sourced-from-objecten
eho/register-referentie:feat/152-objecten-publishes-to-nrc
eho/register-referentie:feat/149-acl-writes-registerrecord
eho/register-referentie:feat/141-registerrecord-objecttype
eho/register-referentie:perf/verify-stack-uwsgi-oz-nrc
eho/register-referentie:fix/144-verify-stack-uwsgi
eho/register-referentie:feat/140-objecten-up
eho/register-referentie:feat/139-objecttypen-up
eho/register-referentie:feat/131-default-fill-crud
eho/register-referentie:chore/136-ci-job-summaries
eho/register-referentie:fix/134-verify-stack-scheduling
eho/register-referentie:feat/130-beheer-catalogi
eho/register-referentie:feat/124-metrics-dashboards
eho/register-referentie:ci/127-parallel-jobs
eho/register-referentie:feat/123-distributed-traces
eho/register-referentie:feat/111-self-service-resume
eho/register-referentie:feat/113-acl-zaaktype-by-identificatie
eho/register-referentie:fix/110-compose-local-flow
eho/register-referentie:fix/115-e2e-single-worker
eho/register-referentie:docs/111-backlog-s26
eho/register-referentie:feat/106-close-zaak-on-timeout
eho/register-referentie:feat/103-diploma-upload-documenten
eho/register-referentie:feat/102-document-wait-timeout
eho/register-referentie:feat/14-dmn-diploma-eligibility
eho/register-referentie:feat/15-beoordeling-escalation
eho/register-referentie:fix/portal-nginx-resolver
eho/register-referentie:fix/local-eventsubscriber-acl
eho/register-referentie:feat/12-withdrawal-portal
eho/register-referentie:fix/91-local-compose-parity
eho/register-referentie:feat/12-withdrawal-bff
eho/register-referentie:feat/12-withdrawal-workflow
eho/register-referentie:feat/12-withdrawal
eho/register-referentie:feat/13-behandel-portal
eho/register-referentie:feat/13-behandel-decide
eho/register-referentie:feat/13-behandel-bff-auth-werkbak
eho/register-referentie:feat/13-workflow-user-tasks
eho/register-referentie:feat/13-behandel-decision-model
eho/register-referentie:chore/release-2026.07.0
eho/register-referentie:feat/78-reference-correlation
eho/register-referentie:feat/75-approval-flow
eho/register-referentie:feat/10-openbaar-portal
eho/register-referentie:chore/73-ci-speedups
eho/register-referentie:feat/68-e2e
eho/register-referentie:feat/67-self-service-form
eho/register-referentie:feat/66-api-client
eho/register-referentie:feat/65-nx-workspace
eho/register-referentie:feat/8-bff
eho/register-referentie:feat/6-domain-service
eho/register-referentie:feat/7-event-subscriber-projection
eho/register-referentie:feat/56-nrc-notification-wiring
eho/register-referentie:test/46-acl-openzaak-integration
eho/register-referentie:feat/47-acl-mutation-baseline
eho/register-referentie:ci/30-gitea-actions-ci
eho/register-referentie:feat/5-acl-open-zaak
eho/register-referentie:feat/4-flowable
eho/register-referentie:feat/3-keycloak
eho/register-referentie:feat/2-opennotificaties
eho/register-referentie:feat/2-catalogus-seed
eho/register-referentie:feat/10-openzaak-compose
eho/register-referentie:feat/32-docs-scaffold
eho/register-referentie:feat/31-contributor-workflow
eho/register-referentie:feat/30-gitea-actions-ci
eho/register-referentie:feat/29-bff-docker-compose
eho/register-referentie:chore/remove-bootstrap-scripts
eho/register-referentie:feat/28-bff-health
eho/register-referentie:docs/split-s00
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9d7e8e5b65 |
ci(k8s): gate the Helm chart in CI + a compose↔chart drift check (closes #168) (#171)
CI / k8s (push) Successful in 5s
CI / lint (push) Successful in 1m27s
CI / build (push) Successful in 1m22s
CI / unit (push) Successful in 1m12s
CI / frontend (push) Successful in 2m7s
CI / mutation (push) Successful in 3m9s
CI / verify-stack (push) Successful in 6m20s
## What & why The Helm chart landed in #167 with two gaps written into ADR-0033: `make k8s-lint` existed but no CI job ran it, and *"a second deployment description to keep in step with compose — nothing enforces that today; a drift check belongs in CI (follow-up)"*. Both are closed here. **`make k8s-drift`** (`infra/helm/check-drift.py`, stdlib only) compares what each stack actually deploys rather than diffing two files that differ by design: workload names and resolved container images, taken from `docker compose config --format json` and a rendered chart. The six differences that exist today are declared in `DEVIATIONS` with the reason each was forced — the four `*-init` Django services folded into their web pods, and the two bootstrap Jobs compose runs from the host — so only a *new* difference fails. **A `k8s` CI job** runs `k8s-lint` then `k8s-drift` on every push and PR. No cluster, no marketplace action: helm is fetched as the pinned static binary the Talos runbook already gives developers. Closes #168 ## Definition of Done - [x] Linked Gitea issue (above). - [x] Failing test committed before the implementation — the red commit reports all six real differences; the green commit declares them. - [x] Implementation makes the test pass. - [x] Conventional Commits referencing the issue (`refs #168`). - [x] CI green — awaiting the run on this PR (`make k8s-lint` and `make k8s-drift` pass locally). - [x] `docker compose up` unaffected — no service, image or compose file is touched. - [x] Docs updated — `docs/runbooks/ci.md` (job table + the one place local and CI now differ), `docs/runbooks/kubernetes-talos.md` §7/§"not ported", and ADR-0033's cost note. - [x] No ADR needed: no new dependency (python stdlib, and helm/docker were already prerequisites of the `k8s-*` targets), no boundary moved, no §8 rule bent. - [x] Not user-visible, so no demo note. ## Notes for reviewers Verified by hand that both drift classes fail the check, not just that it passes today: - bumping `OPENZAAK_TAG` in compose alone → reports `openzaak` and `oz-celery` with both image strings; - adding a workload to `values.yaml` alone → reports it by name. Deliberate limits (there is a `ponytail:` note in the script): - **Names and images only**, as sets — no per-workload env, ports or volumes. Those differ by design in four documented places, so comparing them would mean re-encoding every deviation field by field for very little more signal. - **The three observability workloads are rendered with `enabled=true`** by the check, even though both stacks default them off, so their images can't drift unwatched. - **`k8s-lint`/`k8s-drift` are not in `make ci`**, to avoid making `helm` a hard prerequisite for everyone. That is now the only local/CI difference; it's called out in `docs/runbooks/ci.md`. Follow-ups filed while reviewing the chart, not addressed here: #169 (the published docs omit every ADR after 0010 and all runbooks but `ci.md`) and #170 (the production-posture ADR #25 asked for — secrets are still plain text in `values.yaml`).Reviewed-on: #171 |