Kyverno: policy engine nativo Kubernetes

Kyverno (maggio 2019) di Nirmata (CNCF incubating 2022, graduated marzo 2026): policy engine Kubernetes-native basato su YAML (non Rego come OPA). Validation, mutation, generation, image verification. Alternativa low-barrier a OPA Gatekeeper.

Open SourceCyber Security KyvernoNirmataKubernetesPolicyCNCFSecurityOpen Source

Policy senza imparare Rego

OPA/Gatekeeper richiede padronanza di Rego, un linguaggio dichiarativo Datalog-ispirato con curva di apprendimento significativa. Molti team Kubernetes vogliono policy as YAML, con semantica K8s nativa che imparare da zero.

Il rilascio

Kyverno è pubblicato da Nirmata (Sanjay Ramanathan, Jim Bugwadia) nel maggio 2019. Licenza Apache 2.0. Scritto in Go. Donato alla CNCF il 10 novembre 2020 (sandbox), incubating il 13 luglio 2022, graduated il 16 marzo 2026.

Filosofia

  • Policy come CRD YAML
  • Semantica K8smatch, resources, kind
  • Familiare a chi conosce RBAC, NetworkPolicy, etc.
  • Validating, Mutating, Generating admission controller + policy reporter
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata: { name: require-labels }
spec:
  validationFailureAction: Enforce
  rules:
    - name: check-team-label
      match:
        resources:
          kinds: [Pod, Deployment]
      validate:
        message: "label 'team' is required"
        pattern:
          metadata:
            labels:
              team: "?*"

Caratteristiche

  • Validation — blocca o warn su risorse non conformi
  • Mutation — aggiunge/modifica campi automaticamente (es. sidecar injection, default resource limits)
  • Generation — crea risorse derivate (NetworkPolicy per ogni Namespace)
  • Image verification — integrazione Cosign/Sigstore per verifica firma container
  • Cleanup policies — cancellazione risorse scadute
  • Policy Reports — inventory conformità per cluster
  • Policy exceptions — eccezioni esplicite per risorse legacy
  • ValidatingAdmissionPolicy integrazione (K8s 1.30+ CEL native)

Kyverno vs OPA Gatekeeper

KyvernoOPA Gatekeeper
LinguaggioYAML K8s-nativeRego
Curva apprendimentoBassaAlta
Generation/MutationNo (solo validate)
Use case non-K8sNoSì (Terraform, API, ecc.)
PerformanceOttimaOttima

Policy pack curati

  • Kyverno Policies — repo ufficiale con 100+ policy pronte (PodSecurity, best practice, compliance)
  • PSP replacement — policy che replicano Pod Security Policy (deprecate K8s 1.25+)
  • PCI DSS, CIS, NSA/CISA — baseline conformità

Nel contesto italiano

Kyverno è molto adottato in:

  • Banche per policy baseline conformità (risorse, immagini, secret)
  • PA digitale — vincoli su namespace, label obbligatorie
  • MSP — policy di default su cluster clienti
  • Sanità — conformità regolamenti dati sensibili
  • Team platform engineering come alternativa a Gatekeeper

Combinato spesso con Cosign/Sigstore per verifica firma immagini container in ambienti regolamentati.


Riferimenti: Kyverno (maggio 2019). Nirmata (Sanjay Ramanathan, Jim Bugwadia). Licenza Apache 2.0. Scritto in Go. CNCF sandbox (10 novembre 2020), incubating (13 luglio 2022), graduated (16 marzo 2026). Policy YAML K8s-native. Validation, Mutation, Generation. Cosign integration.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi