agent-platform release v4.35.0
Added
- Model and runtime image signatures are verified at admission:
modelServing.imageVerification renders a Kyverno verifyImages ClusterPolicy over every model pod of the serving namespace (giantswarm/agent-platform#552). A model pod ran whatever the registry served under its references — the modelcar sidecar that carries the weights, the pre-fetch init container KServe runs from the same image and the runtime container were admitted unverified — and an installation that curates its models as signed OCI images had no way to have the platform refuse an unsigned or tampered one. Off by default; on, the connectivity chart renders <release>-model-serving-image-verification where the cache policies render (Kyverno served) and nowhere else: one rule per pod shape — the classic InferenceService predictor and the LLMInferenceService workload pod, Pods at CREATE and UPDATE, since a pod’s container images are mutable and a CREATE-only rule would admit an image swapped into a running pod — verifying every container image that matches images (Kyverno’s imageReferences, wildcards as Kyverno reads them: gsoci.azurecr.io/giantswarm/models/* covers every curated model image) against attestors, one entry per trusted signer passed through as written into one attestor set with count: 1 (keyless — issuer and subject or subjectRegExp, Rekor — a public key or certificates), mutateDigest: true pinning the verified tag to its digest, required: true, failureAction: Enforce (or Audit). Enabled with an empty images list, no attestor, an entry that is no Kyverno attestor entry, a failureAction outside the two or an unknown key fails the render naming the key. The meta chart mirrors the block (make verify-meta holds every leaf equal); make verify-model-serving-policies asserts the rendered rule of both shapes, runs the policy through kyverno apply over both fixture pods (every rule skipped, the policy accepted by Kyverno’s schema, a misspelt field refused), nothing while disabled or without Kyverno, the guards, and the meta chart’s forwarded render equal. README “Verifying model images”.