Gatekeeper
v3.23.0 open-sourceThe section your link pointed to isn't on Gatekeeper's page any more, so we've brought you to the top.
Gatekeeper is a validating and mutating webhook that enforces CRDCRDA Kubernetes extension that adds a new object type to the cluster, so a tool's configuration is stored, validated and versioned by Kubernetes itself rather than in a file beside it.-based policies executed by Open Policy Agent on Kubernetes clusters.
helm upgrade --install gatekeeper gatekeeper/gatekeeper \
--namespace gatekeeper-system \
--create-namespace \
--set enableViolationExport=true \
--set exportBackend=disk \
--set-string \
'auditPodAnnotations.cluster-autoscaler\.kubernetes\.io/safe-to-evict-local-volumes=tmp-volume\,tmp-violations'
apiVersion: mutations.gatekeeper.sh/v1alpha1
kind: Assign
metadata:
name: set-default-label
spec:
applyTo:
- groups: [""]
kinds: ["Pod"]
versions: ["v1"]
operations: ["CREATE", "UPDATE"]
location: "metadata.labels.env"
parameters:
assign:
value: "production"
--sync-vap-enforcement-scope=true
gator test --deny-only -f <path-to-suite>
containers:
- name: manager
args:
- --operation=audit
- --operation=generate
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
name: require-team-label
spec:
scopedEnforcementActions:
- enforcementPoints:
- name: audit
action: deny
- enforcementPoints:
- name: webhook
action: warn
match:
kinds:
- apiGroups: [""]
kinds: ["Namespace"]
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
metadata:
name: k8srequiredlabels
spec:
generateVAP: true
crd:
spec:
names:
kind: K8sRequiredLabels
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8srequiredlabels
violation[{"msg": msg}] {
not input.review.object.metadata.labels["app"]
msg := "missing required label: app"
}
helm install gatekeeper oap/gatekeeper --set disableAudit=true
helm install gatekeeper oap/gatekeeper --set vap.enabled=true
gator test --image oci://ghcr.io/example/policy-lib:test ./policies
gator verify --admission-review ./policies/policy.yaml ./resources/resource.yaml
gatekeeper-controller-manager --host=10.0.0.5
helm install gatekeeper oam/gatekeeper --set metricsBackend=stackdriver
helm install gatekeeper opa/gatekeeper --set webhookRemovalOrder=before
helm install gatekeeper oam/gatekeeper --namespace gatekeeper-system --set experimentalEnableMutation=true
gatekeeper-controller-manager --audit-from-cache=true
Summary
Gatekeeper is an open-source validating and mutating webhook that enforces Kubernetes policy at admission time, built on the Open Policy Agent engine and free to use. It runs as a controller deployed into a Kubernetes cluster, installed via Helm or manifests, and is aimed at platform engineers and administrators responsible for cluster governance rather than application developers. Policies are written as Rego or CELCELCommon Expression Language, an open-source expression language maintained by Google, used to embed lightweight, safe policy evaluation logic into tools without running a full scripting engine. and instantiated through Kubernetes CRDsCRDsA Kubernetes extension that adds a new object type to the cluster, so a tool's configuration is stored, validated and versioned by Kubernetes itself rather than in a file beside it. called constraints and constraint templates, drawn from a shared policy library; its documentation contrasts this with running OPAOPAOpen Policy Agent, a CNCF-graduated policy engine that evaluates rules written in the Rego language against JSON-structured data, letting tools enforce authorization and compliance decisions without hardcoding logic. directly alongside a kube-mgmt sidecar. Beyond blocking non-compliant resources, it can audit existing cluster state for violations and export results to external systems. First committed in 2018, it remains active with hundreds of contributors and a release roughly every month.
Gatekeeper is a validating and mutating webhook that enforces CRD-based policies executed by Open Policy Agent on Kubernetes clusters.
How Gatekeeper helps
Which of my manifests would this policy block before they ever reach the cluster?
runs constraint templates and constraints against test resources offline and reports each denial by object and rule, without touching a live cluster
Which resources already running in my cluster violate a policy I just wrote?
audits current cluster state against every active constraint and lists the existing objects that are out of compliance
Can I change a resource's fields automatically instead of just rejecting it?
mutation resources rewrite matching objects during admission, before validation evaluates the final version of the object
Where do my policy violations end up so another system can act on them?
audit results can be exported to external backends such as disk or message-queue targets, configured through a connection resource rather than hard-coded
Are my ValidatingAdmissionPolicy resources actually enforcing what my constraints say?
syncing enforcement scope keeps generated policy resources aligned with each constraint's enforcement action, namespace exclusions, and exemptions
How much latency will this policy add under real load before I roll it out cluster-wide?
a benchmarking command runs the policy engine against Rego or CEL rules and reports latency percentiles, throughput, and memory use for comparison against a baseline
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for Gatekeeper, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail Gatekeeper puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
39 entries
No entries match these filters.
- August 20261
- July 20261
- March 20261
- November 20251
- July 20251
- April 20251
- December 20241
- November 20241
- August 20242
- May 20241
- March 20241
- February 20241
- November 20231
- October 20231
- August 20231
- April 20231
- January 20231
- October 20221
- July 20221
- April 20221
- November 20211
- August 20211
- June 20211
- April 20211
- January 20211
- September 20201
- August 20201
- July 20201
- June 20201
- May 20201
- April 20201
- January 20202
- December 20192
- October 20191
- September 20191
- July 20191
Project health
Issue, contributor and maintainer activity in open-policy-agent/gatekeeper, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 35 +5 vs prior 12 months
- Maintainers 5 +5 joined · −1 left, last 12 months
- Bus factor 2 committers behind half the commits
- Community-filed 92% of issues opened, last 12 months
- Median time to close 155 days first maintainer reply 41 days
- Open backlog 158 of 1,573 issues ever filed
- Issues opened / month 1 · 0 communitymaintainers
- Open backlog 158
- Contributors / month 4
- Commits / month 5
- Stars 4,274
- bugs 23%
- features 31%
- docs 1%
- other 45%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.