Repository navigation
Pin the kyverno pod-security policies to a commit and put it in the cached file name - #762
Merged
cert-manager-prow[bot] merged 2 commits intoSep 30, 2026
Conversation
kyverno/policies#1544 deleted pod-security/ from its main branch on 2026-09-29. verify-pod-security-standards builds that path without a ref, so it now fails in every project that uses the helm module: Error: evalsymlink failure on '/tmp/kustomize-.../pod-security/enforce' : lstat /tmp/kustomize-.../pod-security: no such file or directory - Build from the release-1.19 branch, which matches the kyverno v1.19 tool version we pin and still has the policies. - The output is byte-for-byte identical to what main produced before the deletion: the same 17 ClusterPolicies. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Richard Wall <richard.wall@cyberark.com>
wallrj-cyberark
commented
Sep 29, 2026
inteon
reviewed
Sep 30, 2026
wallrj
force-pushed
the
pin-kyverno-pod-security-policies
branch
from
September 30, 2026 08:38
0bed965 to
34717bd
Compare
Pin the commit at the tip of release-1.19 rather than the branch name. The branch can still receive pushes, so pinning it would leave every downstream verify job open to the same silent change that broke it when pod-security/ was deleted from main. The release branch is not a compatibility boundary. The pod-security/ bundle is identical on every release branch from release-1.12 to release-1.19, and each policy declares kyverno 1.6.0 as its minimum version. The branches are snapshots for the kyverno.io website. The comment says so, so nobody bumps this along with the kyverno tool. Put the commit in kyverno_policies_version and in the name of the cached policy file, as the module already does for the chart archive. Bumping the version now builds a new file instead of reusing a stale copy in _bin/scratch. Cite kyverno/policies#1543 and name pod-security-vpol/ as the successor in the comment, so whoever bumps this next knows where the policies went. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Richard Wall <richard@the-moon.net>
wallrj
force-pushed
the
pin-kyverno-pod-security-policies
branch
from
September 30, 2026 11:35
34717bd to
ad9e064
Compare
wallrj
added a commit
to wallrj/approver-policy
that referenced
this pull request
Sep 30, 2026
Do not merge. This demonstrates that verify-pod-security-standards passes again with cert-manager/makefile-modules#762, which pins the kyverno pod-security policies to a commit after kyverno/policies deleted them from main. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Richard Wall <richard@the-moon.net>
Member
|
/approve |
Contributor
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: inteon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
wallrj-cyberark
added a commit
to jetstack/jetstack-secure
that referenced
this pull request
Oct 6, 2026
- `make verify` fails because kyverno/policies#1544 deleted the pod-security directory that verify-pod-security-standards builds from. - cert-manager/makefile-modules#762 pins the policies to a commit; this runs `make upgrade-klone` to pick it up, along with routine tool bumps. Signed-off-by: Richard Wall <richard.wall@cyberark.com> Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
make verify-pod-security-standardsfails in every project that vendors the helm module. It has been failing on every fresh checkout since 04:24 UTC on 2026-09-29, whatever the PR changes:The cause is kyverno/policies#1544, which deleted
pod-security/from themainbranch of kyverno/policies. kyverno/policies#1543 tracks the move to the CEL policies inpod-security-vpol/, which replaced it.helm.mkbuilthttps://github.com/kyverno/policies/pod-security/enforcewithout a ref, so it always readmain.No open-source project has failed yet. None of the eight repositories that vendor the helm module has run a verify job since the deletion, so the first PR push to any of them will fail. Please merge this so
verifygoes green again. Downstream repositories will pick it up with their nextmake upgrade-klone.What was wrong
The deletion exposed three problems, and this PR fixes all three.
main. Every fresh checkout fails verify until the URL points somewhere that still has them.mainat that moment. A change upstream could break or alter every downstream verify job without a diff in the consuming repository. That is exactly what happened._bin/scratch/kyverno/pod-security-policy.yamlhad no prerequisites, so an existing checkout kept its first copy for ever. CI (fresh checkout) and developers (warm_bin) were checking against different policies, and no change to the URL could reach a developer's checkout without them deleting the file by hand. This is also why the deletion went unnoticed: a copy cached on 2026-09-23 kept passing for six days aftermainbroke.What this PR changes
ef9843f0, the tip of therelease-1.19branch, one of the last commits that still haspod-security/. The branch name is recorded in a comment but not used as the ref, because the branch can still receive pushes. The branch is not a compatibility boundary:pod-security/is identical on every release branch fromrelease-1.12torelease-1.19, and each policy declares kyverno 1.6.0 as its minimum. So this does not need bumping with the kyverno tool.kyverno_policies_versionvariable and in the name of the cached file,pod-security-policy-<commit>.yaml. This is what the module already does for the chart archive. Changing the version now builds a new file in every checkout, with no stamp rule and no dependency on another module.pod-security-vpol/as the successor in the comment, for whoever bumps this next.CI evidence
cert-manager/approver-policy#1043 points klone at this branch. Its
pull-cert-manager-approver-policy-verifyjob passed on a fresh checkout: build log. It fetched the policies with the new pin and applied 19 rules to the Deployment, allPass. That PR is held and will be closed once this merges.Follow-up
A better fix is to commit the built policy file to this module, as cert-manager/cert-manager already does in
make/config/kyverno/policy.yaml. That removes the network fetch frommake verify, lets Renovate manage policy updates as ordinary PRs, and lets us patch the policies. We should do that separately, once the CEL policies are in the kyverno version we pin.How I tested it: the pinned commit builds the same 17 policies as main did before the deletion, and the cache follows the pin
I tested in a scratch project built with
bootstrap.shplus thetoolsandhelmmodules from this branch and a minimal chart with one Deployment.kustomize buildresultmain)evalsymlinkerror aboveef9843f08d25b3555fe69616f8612c9f915af5d4(tip ofrelease-1.19)ClusterPolicyobjectsd12f1b56ff051b2b5e59ffd7d3d563f8add30547(last commit onmainbefore the deletion)ClusterPolicyobjectsrelease-1.19ClusterPolicyobjectsAll three built files have the same SHA-256, and match a copy cached on 2026-09-23 from the unpinned URL. So this changes nothing about which policies charts are checked against. Note that kustomize does not accept a short SHA as a ref.
The versioned file name behaves as intended:
makewith the same version leaves the file untouched.make kyverno_policies_version=d12f1b56... verify-pod-security-standardsbuilds a second file,pod-security-policy-d12f1b56....yaml, beside the first.make verify-pod-security-standardsthen passes: 19 rules applied to the Deployment, allPass.[Claude Fable 5.1]