kyverno is a free, open source compliance & risk management project written in Go and released under Apache-2.0. It has 8,159 GitHub stars, 1,596 forks and 703 open issues, and was last pushed 11 hours ago. On this registry it ranks #9 of 45 tracked projects in Compliance & Risk Management, with 5 head-to-head comparisons available. It gained 11 stars over the last 3 tracked days.

What is kyverno?

Kyverno is a Kubernetes-native policy engine that lets platform engineering teams define security, compliance, automation, and governance rules as policy-as-code, using the Kubernetes tools they already run rather than a separate policy language.

What it is

Kyverno is an open-source policy engine written in Go and licensed under Apache-2.0, published by the Kyverno project and documented at kyverno.io. It runs inside Kubernetes and treats policy as ordinary Kubernetes configuration, so policies are authored, reviewed, versioned, and shipped through the same workflows as the rest of a cluster's manifests. The project describes itself as "Unified Policy as Code" and positions itself for platform engineering teams that need security, compliance, automation, and governance controls applied consistently across clusters. It carries the topics compliance, governance, kubernetes, policy-as-code, and security.

The concrete problem it solves is enforcement at the point where resources enter and change in a cluster. Instead of relying on documentation, review checklists, or a bespoke policy language that only a few engineers can read, Kyverno validates, mutates, generates, and cleans up resources through Kubernetes admission controls and background scans. It also verifies container image signatures for supply chain security. Policies live in Git and are applied with kubectl and kustomize, which replaces the separate toolchain and unfamiliar DSL that policy engines traditionally required.

Key capabilities

  • Validate, mutate, generate, and clean up Kubernetes resources using admission controls and background scans.
  • Verify container image signatures as part of supply chain security enforcement.
  • Author and deliver policy using kubectl, kustomize, and Git rather than a new policy language.
  • Complement Kubernetes' built-in ValidatingAdmissionPolicies and MutatingAdmissionPolicies with comprehensive reporting, exception management, and periodic background scanning.
  • Publish and consume packages through Artifact Hub under the kyverno repository.
  • Extend beyond the core engine with companion projects: Chainsaw for end-to-end testing, Policy Reporter for policy violation reporting and a UI, and policy evaluation for non-Kubernetes environments.
  • Run alongside Kubernetes RBAC rather than replacing it, adding checks that RBAC cannot perform.

Who uses it and how

  • Platform engineering teams standardizing security and compliance rules across clusters, with policies stored beside application manifests in Git.
  • Security and compliance groups enforcing guardrails during admission, so non-conforming resources are caught before they are created rather than audited afterwards.
  • Supply chain teams requiring container image signature verification before workloads are admitted.
  • Teams validating policy behaviour in CI with Chainsaw, the companion end-to-end testing tool.
  • Operations teams needing visibility into violations through Policy Reporter, which provides reporting and a UI on top of engine output.

Getting started

Installation and deployment instructions live in the project documentation at kyverno.io, and installable packages are published to Artifact Hub under the kyverno repository.

How it compares

Kyverno is not a replacement for Kubernetes RBAC: RBAC controls access while Kyverno enforces policy compliance, and cluster admins are expected to use RBAC for user and service account authorization before layering Kyverno on top. It also complements, rather than substitutes for, the native ValidatingAdmissionPolicies and MutatingAdmissionPolicies controls, adding reporting, exception management, and periodic background scanning that the built-in controls do not provide. Capabilities outside the core engine, such as end-to-end testing and violation reporting, are handled by companion projects in the Kyverno organization.

When to use it — and when not to

Kyverno only enforces the policies a team defines, so it must be actively maintained like any other security product, and it will not cover requirements nobody wrote down. It cannot address security flaws inherent in Kubernetes itself: it does not protect against vulnerabilities in the Kubernetes API server, such as Billion Laughs YAML deserialization or a faulty admission controller, and its enforcement may be bypassed if Kubernetes has a security flaw. Teams expecting it to fix Kubernetes design weaknesses, replace RBAC, or govern non-Kubernetes systems with the core engine should look elsewhere, and the project carries 703 open issues, so operators should track upstream activity before standardizing on it.

project readme (upstream, from github) — read inline

Kyverno Tweet

Cloud Native Policy Management 🎉

Build Status Go Report Card License: Apache-2.0 GitHub Repo stars CII Best Practices OpenSSF Scorecard SLSA 3 Artifact HUB codecov FOSSA Status

📑 Table of Contents

About Kyverno

Kyverno is a Kubernetes-native policy engine designed for platform engineering teams. It enables security, compliance, automation, and governance through policy-as-code. Kyverno can:

  • Validate, mutate, generate, and clean up resources using Kubernetes admission controls and background scans.
  • Verify container image signatures for supply chain security.
  • Operate with tools you already use — like kubectl, kustomize, and Git.
Open Source Security Index badge

Non-Goals

Kyverno is only able to impact the policies used by Kubernetes and is not designed to address Kubernetes security flaws that are inherent in its design. For example, it cannot protect against vulnerabilities in the Kubernetes API server (e.g. Billion Laughs YAML deserialization, or a faulty Admission Controller implementation) or underlying infrastructure, and Kyverno's policy enforcement may be bypassed if Kubernetes itself has a security flaw. Kyverno does not enforce security requirements that were not explicitly defined — it enforces only the policies that users define and must be actively maintained like any other security product.

Kyverno does not replace, but works in conjunction with, Kubernetes RBAC: RBAC controls access while Kyverno enforces policy compliance. Cluster admins are expected to use RBAC to manage user and service account authorization, and then leverage Kyverno for additional checks that RBAC cannot perform.

Kyverno also does not replace Kubernetes' built-in policy controls like ValidatingAdmissionPolicies and MutatingAdmissionPolicies, but complements these native controls with additional features such as comprehensive reporting, exception management, and periodic background scanning.

Several capabilities that are out of scope for the core engine are addressed by companion projects in the Kyverno organization: end-to-end testing tooling (Chainsaw), policy violation reporting and UI (Policy Reporter), policy evaluation for non-Kubernetes JSON payloads (Kyverno JSON), and authorization policy for service meshes (Kyverno Envoy Plugin). These are maintained as separate projects with their own release cycles.

📙 Documentation

Kyverno installation and reference documentation is available at kyverno.io.

🎥 Demos & Tutorials

🎯 Popular Use Cases

Kyverno helps platform teams enforce best practices and security standards. Some common use cases include:

1. Security & Compliance

  • Enforce Pod Security Standards (PSS)
  • Require specific security contexts
  • Validate container image sources and signatures
  • Enforce CIS Benchmark policies

2. Operational Excellence

  • Auto-label workloads
  • Enforce naming conventions
  • Generate default configurations (e.g., NetworkPolicies)
  • Validate YAML and Helm manifests

3. Cost Optimization

  • Enforce resource quotas and limits
  • Require cost allocation labels
  • Validate instance types
  • Clean up unused resources

4. Developer Guardrails

  • Require readiness/liveness probes
  • Enforce ingress/egress policies
  • Validate container image versions
  • Auto-inject config maps or secrets

📚 Explore the Policy Library

Discover hundreds of production-ready Kyverno policies for security, operations, cost control, and developer enablement.

👉 Browse the Policy Library

🙋 Getting Help

We’re here to help:

➕ Contributing

Thank you for your interest in contributing to Kyverno!

🧾 Software Bill of Materials

All Kyverno images include a Software Bill of Materials (SBOM) in CycloneDX format. SBOMs are available at:

👥 Contributors

Kyverno is built and maintained by our growing community of contributors!

Contributors image

Made with contributors-img

📄 License

Copyright 2026, the Kyverno project. All rights reserved.
Kyverno is licensed under the Apache License 2.0.

Kyverno is a Cloud Native Computing Foundation (CNCF) Incubating project and was contributed by Nirmata.

Frequently asked questions

Is kyverno free to use?

kyverno is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does kyverno do?

Unified Policy as Code

What is kyverno written in?

kyverno is primarily written in Go. Its source is publicly available at https://github.com/kyverno/kyverno, and it has 8,159 GitHub stars.