state-hub/deploy/railiance/apps/charts/state-hub/templates/classification-configmap.yaml
tegwick ac21accd7a
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 25s
feat(deploy): ship the canon classification vocabulary with the release
The API validates repo classification against the-custodian canon allowed
values. A container has no such checkout, so every classification write failed
with a 500 and classification could only ever be written from a workstation.

Mounts the vocabulary as a ConfigMap and points
REPO_CLASSIFICATION_ALLOWED_PATH at it.

The copy is the risk, so it is owned rather than trusted:
scripts/sync_classification_allowed.py regenerates it from canon and --check
fails on drift. make check-classification-allowed and
make railiance-state-hub-render both refuse to proceed when the copy diverges,
so a release cannot silently validate against a stale vocabulary.

The container volumeMounts and env blocks are merged rather than appended —
a second pair would have produced duplicate YAML keys as soon as sweep was
re-enabled.

Refs CUST-WP-0067-T09

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-24 23:46:05 +02:00

12 lines
483 B
YAML

{{- if .Values.classificationAllowed.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Values.classificationAllowed.name | quote }}
labels: {{- include "statehub.labels" . | nindent 4 }}
data:
# Generated copy of the-custodian canon allowed-values. Kept in sync by
# scripts/sync_classification_allowed.py; `--check` fails the release on drift.
repo-classification.allowed.yaml: |
{{ .Files.Get "files/repo-classification.allowed.yaml" | indent 4 }}
{{- end }}