Skip to content

Keep YAML document separators in generated CRD manifests - #46

Merged
glenmessenger merged 1 commit into
mainfrom
fix/crd-doc-separators
Aug 20, 2026
Merged

glenmessenger merged 1 commit into
mainfrom
fix/crd-doc-separators

Conversation

@glenmessenger

Copy link
Copy Markdown
Collaborator

The rc.3 boundary test's recovery step found the documented migration command half-broken: helm show crds | kubectl apply applied only ONE of the two CRDs. Root cause: the manifests post-processing stripped YAML document separators, so helm show crds (which concatenates crds/ files) emitted two CRDs with zero separators — kubectl parsed one document. The per-probe readiness check then correctly kept the pod NotReady on the missing config informer, which is how this surfaced.

Fix: generated manifests keep their --- separators (boilerplate header, then separator, then doc). Verified: chart lint/template clean, helm show crds-style concatenation now parses as two documents, install.yaml assembly unaffected (it strips per-file itself — 8 docs, 2 CRDs, ruby-validated), envtest loads the separated CRDs (dual-version test green).

Boundary-session status: everything else passed on rc.3 — stall with zero-downtime continuity, recovery, UID preservation, dual-serving, storage assertion, boundary rollback. This is the last blocker; rc.4 verifies the fixed command end-to-end on GKE, then v1.3.0.

Without separators, helm show crds concatenates the chart's two CRD
files into one invalid stream and kubectl apply silently applies only
the first — the documented migration command half-applied exactly when
it mattered (found by the rc.3 boundary recovery step). install.yaml
assembly strips separators per-file itself and is unaffected; envtest
and helm lint/template verified against the separated files.
@glenmessenger
glenmessenger merged commit 30af41a into main Aug 20, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant