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
{{ message }}
Repository navigation
Switch tenant GHCR references and the Kyverno guardrail to per-tenant paths #3303
k8s/bases/infrastructure/resource-graph-definitions/tenant/resource-graph-definition.yaml (the RGD that materializes ghcr-auth for every future tenant)
k8s/bases/infrastructure/cluster-policies/best-practices/restrict-tenant-secret-stores.yaml currently permits tenants to read exactly infrastructure/ghcr/auth, so the guardrail encodes the over-broad path as the allowed one.
Impact
The reference switch and the policy must move together. Switching references while the policy still allows only the platform path fails tenant reconciliation; relaxing the policy first would widen what a tenant may read.
Expected behavior
Every tenant consumer resolves apps/<tenant>/ghcr/auth, the RGD templates that per-tenant path for new tenants, and the Kyverno policy allows a tenant to read only its own path — while platform-root Flux, Talos, and Kyverno consumers keep resolving the single authoritative path.
Acceptance criteria
All three consumers switched, and the RGD parameterized so a new tenant inherits the scoped path by construction.
restrict-tenant-secret-stores allows apps/<tenant>/ghcr/auth for that tenant and denies another tenant's path, with the deny proven by a policy test.
Platform-root consumers demonstrably unchanged.
Blocked by provisioning: switching references before the sources exist is what closed PR #2722.
Closing as a duplicate of #3262. I filed this without checking that #2889 already had sub-issues, so it re-decomposes work that was decomposed on 2026-08-20. No content here supersedes the existing children.
Activity
devantler commentedon Aug 22, 2026
Closing as a duplicate of #3262. I filed this without checking that #2889 already had sub-issues, so it re-decomposes work that was decomposed on 2026-08-20. No content here supersedes the existing children.