Open Policy Agent is the CNCF policy engine that organisations use to turn written standards into controls that execute. The engine itself takes a JSON input, evaluates declarative Rego policy against it, and returns a decision. What makes Open Policy Agent an organisational tool rather than a library is everything built around that: admission controllers that apply the decision to every object entering a Kubernetes cluster, bundle servers that distribute one signed policy set to hundreds of agents, and decision logs that record every answer given, so a control can be demonstrated rather than asserted.
Run as a governance programme, it changes what a standard is. 'Containers must not run as root' stops being a paragraph in a wiki that a reviewer may or may not check, and becomes a constraint that rejects the deployment, or — during rollout — records a violation without blocking it while teams remediate. The same policy definition can run in a developer's pre-commit hook, in the pull request pipeline, and at admission, so a team finds out at the earliest point rather than at deploy time, and nobody can route around the control by taking a different path to the cluster.
The organisational work is in the parts that are not the engine. Someone has to own the constraint library and version it. Rollout has to move from audit to warn to enforce without breaking existing workloads. Exemptions have to exist, be time-bounded, and be visible. Failure policy has to be chosen deliberately, because a webhook that fails closed can stop a cluster and one that fails open silently disables the control. And the audit and decision-log output has to be shaped into evidence that maps onto whatever framework the organisation is measured against.
Why this skill matters now
Kubernetes made a manual review model impossible. When a platform team supports fifty namespaces across several clusters and every team deploys many times a day, no human is reading manifests, and the guardrails either execute automatically or they do not exist. Pod Security Policy was removed, which forced the question on every cluster operator who was still relying on it, and admission-time policy engines became the standard answer.
Regulatory and customer expectations moved at the same time. Security questionnaires and audits now ask for evidence that a control applies to every workload, not a sample — and a policy engine with audit results and decision logs answers that directly, with a timestamped record of each object evaluated and each decision returned.
What organisations get wrong is the programme rather than the technology. Installing Gatekeeper takes an afternoon; the failures come later. Constraints are rolled out in enforce mode and break a release, so the whole thing is disabled. Exemptions are granted as permanent namespace exclusions and nobody tracks them. The webhook fails closed during an upgrade and the cluster stops accepting workloads. The policy library is copied between clusters and diverges. Running policy-as-code so that it survives its first outage and its first angry delivery team is the skill this course is built around.