Kyverno & Kyverno Policies

Updated November 5, 2026

Kyverno is an application for managing security policies in Kubernetes. Policies are represented as Kubernetes resources.
Kyverno supports tools such as kubectl, git, and kustomize. The Kyverno command-line interface can be used to test policies and validate resources as part of a CI/CD pipeline.

Kyverno-policies is an extension for Kyverno.
It implements Kubernetes Pod Security Standards (PSS). When installing the extension, you can select a policy mode: Audit (record violations) or Enforce (block requests that violate policies). The upstream policies are available in the Kyverno policies repository.

You can send notifications from Kyverno to other systems using the Kyverno Policy Reporter extension. Kyverno Policy Reporter supports export to Yandex Object Storage (S3).

Deployment instructions

Warning

In-place upgrades from versions published before 2026 are not supported. Use the reinstallation procedure below.

Updating older versions

Plan a short maintenance window: these steps briefly remove Kyverno admission control from
the cluster. Run kubectl against the target cluster.

Use this procedure only after confirming that no other installation, including KSPM, uses the Kyverno CRDs or webhooks. CRDs are shared across the cluster. Export all custom policy types used by the old installation before deleting their CRDs; the backup command below covers only ClusterPolicy and Policy. Delete only resources that belong to the old application, using their verified names.

Step 3 deletes Kyverno’s CRDs, which removes all ClusterPolicy/Policy objects — including
any you authored. (The bundled Pod Security Standards policies are re-created when Kyverno Policies is enabled with the baseline or restricted profile; save your own custom policies separately.) Historical PolicyReports are also
removed and will be regenerated after reinstall.

kubectl get clusterpolicies.kyverno.io,policies.kyverno.io -A -o yaml > my-kyverno-policies-backup.yaml

1. Remove the old version via the Marketplace

Delete the old application through the Marketplace, not with raw helm uninstall:

  • Console: Managed Service for Kubernetes → your cluster → Marketplace / installed
    applications → delete the Kyverno application; or
  • Terraform: remove the yandex_kubernetes_marketplace_helm_release resource and
    terraform apply (destroy).

This runs the old chart’s pre-delete hook (which removes Kyverno’s admission webhooks) and
clears the Marketplace’s record of the install. A raw helm uninstall skips the Marketplace and
orphans the app record, later causing AlreadyExists when you install the new version.

2. Delete any leftover Kyverno admission webhooks — critical

Kyverno self-registers its webhooks at runtime. If any survive step 1 (e.g. the old pod was
unhealthy and the pre-delete hook didn’t run), they point at a Service that no longer exists and
may block matching API requests, depending on their failure policy. Inspect each webhook’s service reference and delete only webhooks that belong to the removed application. Replace the placeholders below with verified names and repeat for each leftover webhook:

kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations | grep kyverno
kubectl delete validatingwebhookconfiguration <old-kyverno-validating-webhook>
kubectl delete mutatingwebhookconfiguration <old-kyverno-mutating-webhook>

3. Delete the old Kyverno CRDs — required

Helm installs a chart’s CRDs (the crds/ directory) only when the CRDs don’t already exist —
it never updates or replaces existing ones. If the old (Kyverno 1.9) CRDs remain, the new
install keeps the stale definitions and the new v1.19.2 controllers crash-loop on their CRD sanity
checks (missing ephemeralreports.reports.kyverno.io, the policies.kyverno.io group, etc.).
Delete only CRDs belonging exclusively to the old application so the new definitions can be installed:

kubectl get crd -o name
kubectl delete crd <old-kyverno-crd>

Repeat the deletion for each verified CRD of the old installation. Do not classify updaterequests.kyverno.io as a removed type: it is also supplied by the current version.

4. Delete the old namespace

Delete only the dedicated namespace of the old application, after confirming it contains no other applications. Never delete default or a shared namespace; remove only the old application’s resources there:

kubectl delete namespace <old-namespace>

5. Verify the cluster is clean

kubectl get crd | grep -E 'kyverno\.io|wgpolicyk8s\.io'                     # none
kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations | grep kyverno   # none
kubectl get ns <old-namespace>                                             # NotFound

6. Install the new version

Install the new Kyverno version.

Then verify and re-apply any custom policies from step 0:

kubectl -n <namespace> get pods            # 4 controllers Running: admission/background/cleanup/reports
kubectl get clusterpolicies.kyverno.io     # PSS policies if enabled with baseline/restricted

When reviewing backed-up custom policies, replace the deprecated
spec.validationFailureAction with per-rule spec.rules[].validate.failureAction
(Audit/Enforce).

  1. Create a node group for Kyverno.
  2. Configure the application:
    • Namespace: Create a new namespace, e.g., kyverno-space. If you leave the default namespace, Kyverno may work incorrectly.
    • Application name: Enter a name for the application.
    • Kyverno policies activation: Select the kyverno-policies extensions for an automatic install in Kyverno.
    • Pod Security Standard profile: Select the Pod Security Standard profile: baseline, restricted, or privileged. If the field is left blank, it will be set to baseline by default.
    • Validation failure action: Select a response to Kyverno triggering: Audit (record violations) or Enforce (block). If the field is left blank, it will be set to Audit by default.
  3. Click Install.
  4. Wait for the application to change its status to Deployed.

The installation namespace is excluded from Kyverno admission processing by default. Test policies against workloads in a separate namespace.

For more information about tracking when Kyverno is triggered, see the instructions.

If you no longer need the application, remove it through the Marketplace. Verify that its webhooks have been removed. If any remain, follow the webhook cleanup instructions and delete only configurations belonging to the removed application.

Billing type
Free
Type
Kubernetes® Application
Category
Security
Admin tools and DevOps
Publisher
Yandex Cloud
Use cases
  • Managing the environment independently from workload configurations.
  • Scanning the current workload to optimize Kubernetes cluster performance.
  • Blocking or modifying API calls to optimize Kubernetes cluster performance.
  • Validating, mutating, and generating Kubernetes resources.
  • Ensuring the security of the OCI image supply chain.
Technical support

Yandex Cloud technical support is available 24/7 to respond to requests. Available support modes and response times depend on your support plan. You can enable paid support in the management console. Learn more about requesting technical support.

Product composition
Helm chartVersion
Pull-command
Documentation
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/charts/kyverno3.9.2Open
Docker imageVersion
Pull-command
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/kyvernopre1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/kyverno1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/background-controller1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/cleanup-controller1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/reports-controller1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/kyverno-cli1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/readiness-checker1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/readiness-checker1793893117116677469695023731103762836944526450924v1.19.2
cr.yandex/crp30hc0058iod41r1pv/yandex-cloud/kyverno/kubectl1793893117116677469695023731103762836944526450924v1.31.4
Product IDs
Product:
f2edr1mv2dbaqf1s3skm
Terms
By using this product you agree to the and the terms and conditions of the following software: Yandex Cloud Marketplace Terms of Use
Billing type
Free
Type
Kubernetes® Application
Category
Security
Admin tools and DevOps
Publisher
Yandex Cloud

This might be a good fit for you