Swap puppet compiler ENC to the encapic Go binary #277
Reference in New Issue
Block a user
Delete Branch "benvin/puppet-enc-encapic-go"
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?
Why
The puppet-on-k8s compilers classify nodes with a uv/python ENC script (
encapi-enc). Each fresh compiler pod resolves the script's python dependencies on first invocation, and that resolution fails on cold pods (observed exits 135/2), breaking puppet agent catalog compilation.encapic(git.unkin.net/unkin/encapic) is a stdlib-only Go replacement with no runtime dependency resolution — a behavioural drop-in whose output matches the python script byte-for-byte.Changes
external_nodesat/opt/bin/encapic.setup-shared-binsinit container tocurlthe encapicv0.1.0encapic_linux_amd64release binary (sha256-verified against the published.sha256, installed mode 0755) into the shared bins dir, instead of copying the python script and installing uv.puppet-encapi-encconfigmap generator, its volume and mount, and theresources/encapi-encscript. uv was consumed solely by that script (grep ofapps/base/puppetconfirms no other consumer), so its installation is removed too.kubectl kustomize apps/overlays/au-syd1/puppetbuilds clean.Merge gate
Do not merge until the encapic
v0.1.0release assets exist:https://git.unkin.net/unkin/encapic/releases/download/v0.1.0/encapic_linux_amd64(+.sha256). The init container pulls them at pod start.Rollback
Revert this PR to restore the
encapi-encconfigmap script + uv install and repointexternal_nodes.