Fixed
- Image verification renders the egress Kyverno’s admission controller needs, so a model pod is admitted on an installation whose Kyverno may reach the API server only (giantswarm/agent-platform#599). A
verifyImagesrule is evaluated by Kyverno’s admission controller itself: it fetches the image’s Sigstore bundle from the registry and verifies it against the Sigstore trust root. The fleet’s Kyverno chart gives the admission controller aCiliumNetworkPolicyallowing egress to the API server only, and Cilium’s default-deny takes the rest — DNS included —, so every fetch failed before it started (failed to fetch bundles: … dial tcp: lookup gsoci.azurecr.io: i/o timeout), and sinceverifyImagesruns in the mutating webhook withfailurePolicy: Fail, the error denied the pod whateverfailureActionsaid (Audittoo): from the switch’s default-on (4.43.0) every model pod on such an installation was refused, itsReplicaSetretried with backoff, theLLMInferenceServicestayedMinimumReplicasUnavailableand no GPU node was launched — seen on an installation minutes after the release rolled, invisible to the lab’s proof, whose Kyverno runs without that policy. The connectivity chart now renders, where the image-verificationClusterPolicyrenders and the network-policy flavor is cilium, oneCiliumNetworkPolicy<release>-model-serving-image-verification-egressin Kyverno’s namespace selecting the admission controller pods, with DNS through Cilium’s DNS proxy and TCP 443 to the registry hosts (gsoci.azurecr.io, the Azure Container Registry data endpoints*.*.data.azurecr.ioa blob read is redirected to) and the Sigstore hosts (tuf-repo-cdn.sigstore.dev, the trust root;rekor.sigstore.dev, the transparency log the keyless attestor names) — additive to whatever Kyverno’s own policies allow. The block ismodelServing.imageVerification.kyvernoEgress(enabled,namespace,podSelector,hostsastoFQDNsentries), mirrored in both charts;enabled: falserenders none for a Kyverno that reaches the registry already; an emptypodSelector(the default) selects the upstream chart’s admission-controller labels and a set one renders alone; the guards refuse an empty namespace or host list, a selector that is no mapping, a host that is notoFQDNsentry, a nulled block and an unknown key, naming the key.make verify-model-serving-policiesasserts the default render, the switches, the guards and the meta chart’s forwarded values. UPGRADE.md, “image verification renders the egress Kyverno’s admission controller needs”.