fix: CRD CEL reserved-word escape + package-profile release dispatch #2036
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/crd-cel-and-zig"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two commits, two defects — and this PR is the first fleet train ride: it does not merge by hand, it merges when the release is declared.
1.
fix(crd):namespaceis a CEL reserved word. The kubernetesImage rule selectedself.namespace, which spec-compliant CEL compilers refuse — so envtest 1.30/1.31 could not install the pipelinedeploys/pipelinetargets CRDs and the whole 125-spec controller suite failed at BeforeSuite on every laptop. Escaped toself.__namespace__(the documented k8s form). Proof: the full controller suite now passes locally (125/125, ~31s), and both regenerated CRDs pass--dry-run=serveragainst the live 1.34 apiserver. Rule behaviour unchanged.2.
fix(release): zdns + zerotea could not release since 2026-08-07. The operator's StagingArgs overrides pipeline-staging's defaults for every profile; thepackagecase forgot to restorebuildTemplate/testTemplate, so package releases compiled via pipeline-build-buildkit — whose compile pod deliberately holds NO clone — while the zig build scripts contract on pipeline-build's cloned/src. Firstzig fmt --check→ FileNotFound, release-mode only (the push sensor targets pipeline-build, so CI stayed green). The deb/rpm install matrix had also silently degraded to noop. Reproduced live on zerotea before fixing (zerotea-release-request-8c8hr, failed=compile, "unable to format 'src': FileNotFound").TestStagingArgsMatchStagingSensorcould not catch this — the package sensor passes neither param, and that test compares only explicit ones. NewTestPackageProfileReleaseCompilesFromClonepins both args; verified red without the fix, green with it.Also:
pipeline-staginggains themcbinvolume (pkg-install's baked-mc share) — the same templateRef non-inheritance trap the file documents for codeberg/release-lib; its absence failed zelnet's release at the deb step.zelnet's stranded 0.10.3 claim: no change needed — the holder is terminal with no tag/items/image, so the
releaseVersionClaimAbandonedtakeover (added for ory's identical wedge 2026-08-10) hands the version over on the next declared release.Verification: full
go test ./...green INCLUDING the controller envtest suite (first time possible on a laptop); 129/129 guards; render tests cover all 21 delivered CRs.After this deploys: declare releases on zerotea, zdns, zelnet to confirm all three ship again.
namespacein the kubernetesImage rule 5b85f82e89