Admission Controller

Stable

Stop unsafe workloads before they enter your cluster.

The Kubewarden Admission Controller is an extensible, Kubernetes-native policy engine. It evaluates built-in and custom resources before admission to your cluster. Your policies can allow a request, modify its resources, or deny it.

Why the Admission Controller?

Write policies your way

Use Rust, Go, Rego, CEL and other familiar technologies.

Distribute like containers

Package and share policies through standard OCI registries.

Build once, run anywhere

Policies are compiled to WebAssembly for portability and isolation.

Start from the community

Use and extend a growing collection of ready-to-use policies.

Built for the people doing the work

For policy authors

Write, test, and share policies as regular software.

  • Use familiar languages and tooling
  • Reuse OPA, Gatekeeper and ValidatingAdmissionPolicy policies
  • Validate and mutate any Kubernetes resource
  • Test locally with kwctl, publish to any OCI registry
lib.rs
// validate incoming Pods
use kubewarden_policy_sdk as kubewarden;

fn validate(payload: &[u8]) -> CallResult {
    let req: ValidationRequest<Settings> =
        ValidationRequest::new(payload)?;
    // ... your policy logic here
    kubewarden::accept_request()
}
Learn about writing policies (opens in new tab)

For Kubernetes operators

Deploy and manage policies without extra complexity.

  • Manage policies as Kubernetes resources, GitOps-ready
  • Roll out safely in monitor mode before enforcing
  • Audit running workloads and get PolicyReports
  • Start from hundreds of ready-to-use policies
policy.yaml
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
  name: privileged-pods
spec:
  module: ghcr.io/kubewarden/policies/pod-privileged:v1.0.0
  rules:
    - apiGroups: [""]
      apiVersions: ["v1"]
      resources: ["pods"]
      operations: ["CREATE"]
Learn about deploying policies (opens in new tab)

Ready to try it?

Install the Admission Controller with Helm and deploy your first policy in a few minutes.

# Add the Kubewarden Helm repository
helm repo add kubewarden https://charts.kubewarden.io

# Install the admission controller
helm install --wait -n kubewarden --create-namespace \
  admission-controller kubewarden/admission-controller

Ready-to-use policies

Browse hundreds of policies and start securing your cluster today. Use them as-is, or as a reference to build your own.

Security

Restrict privileged containers

Block Pods that request privileged containers or escalated capabilities.

View on Artifact Hub: Restrict privileged containers (opens in new tab)
Supply chain

Verify image signatures

Admit only Pods whose container images carry valid Sigstore signatures.

View on Artifact Hub: Verify image signatures (opens in new tab)
Supply chain

Trusted repositories

Restrict which registries, images and tags workloads are allowed to pull from.

View on Artifact Hub: Trusted repositories (opens in new tab)
Best practice

Container resources

Enforce CPU and memory requests and limits on every container.

View on Artifact Hub: Container resources (opens in new tab)

Explore other Kubewarden components

Extend your security posture across the entire workload lifecycle.

Network Enforcer

Discover network activity and secure the communication between your workloads.

Experimental Learn more about Network Enforcer

Runtime Enforcer

Control what can run inside your Kubernetes pods.

Beta Learn more about Runtime Enforcer

SBOM Scanner

Find vulnerabilities in the container images running inside your cluster.

Beta Learn more about SBOM Scanner

Originally developed by

Kubewarden is a CNCF Sandbox Project