You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
The documented policies can admit eviction-blocking disruption budgets, deny unrelated ObjectBucketClaims, and mutate Pod controllers despite the intended Pod-only scope.
A newly created Tenant without a status field makes t.status.?namespaces fail the entire filter, so ObjectBucketClaims for unrelated Tenants can be denied too. Resolve the Tenant directly from the namespace's capsule.clastix.io/tenant label and make the status lookup optional; that also avoids the deprecated status.namespaces field (content/en/docs/reference.md:11793).
Percentage minAvailable values bypass the eviction-safety check
The type(...) != int branch accepts every percentage-valued minAvailable without checking the matching Deployments. For example, minAvailable: "100%" with a three-replica Deployment passes, even though it requires all three Pods to remain available and prevents voluntary evictions—the condition this policy is intended to reject. Please evaluate percentages using Kubernetes' round-up semantics rather than bypassing the comparison for strings.
Legacy annotation does not disable Pod-controller autogen
The legacy annotation is ignored by MutatingPolicy, so it does not keep this mutation Pod-only. With autogen left at its default, Kyverno also generates mutations for supported Pod controllers, including Deployments and Jobs. Replace the annotation with spec.autogen.podControllers.enabled: false.
Background scans run in Kyverno's reports controller, but the values below grant Gateway access only to the admission controller. If Gateway read permissions are otherwise missing, enabling background evaluation as instructed still leaves existing Gateways unscanned. Please grant these permissions under reportsController.rbac.clusterRole.extraResources instead.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Unresolved policy defects can block Pod finalizer removal, deny claims for unrestricted Tenants, and miscalculate disruption allowances, while several integration examples remain unmigrated.
For a Pod created before this policy was installed without an emptyDir.sizeLimit, a later metadata update adds the limit to that existing Pod. Kubernetes rejects that immutable spec.volumes change, which can block finalizer removal and leave Pods terminating. Match CREATE only.
Migrate remaining Kyverno examples to the supported policy API
The repository-wide migration described in the PR is incomplete: content/en/ecosystem/integrations/kyverno.md still contains five kyverno.io/v1ClusterPolicy examples (starting at lines 56, 91, 163, 244, and 311), and content/en/ecosystem/integrations/monitoring.md contains another at line 74. Readers following those integration guides will still be instructed to apply the policy type that this paragraph says Kyverno 1.20 rejects. Please migrate those remaining examples as well.
Skip bucket validation for Tenants without storage-class conditions
The selector matches all Tenant namespaces, so an unrestricted Tenant's missing status.classes.storage becomes [] and every ObjectBucketClaim create or update is denied. The warning at line 43 does not scope the policy, and this can also prevent finalizer removal. Fetch the Tenant once and bypass validation when no storage-class matching condition is configured; adjust that warning to match.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Critical policy gaps permit cross-tenant deployments and log routing, while incorrect handling of optional owners and unrestricted storage configurations can reject valid resources.
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
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.
Old policy types are officially deleted in Kyverno since 1.20; which is released yesterday. Migrate everything to the new policytypes.