EVAPorating Kubernetes Security Risk: Adopting Validating Admission Policy at Scale
Talkat KubeCon + CloudNativeCon Europe 2025 · on Friday, 2025-04-04· at 15:15· Level 1 | Hall Entrance S10 | Room D·
summary
Datadog replaces OPA Gatekeeper webhooks with ValidatingAdmissionPolicy evaluated in-process across 100+ clusters (10k nodes, 100k pods), translating a capabilities-restriction PSP into CEL expressions, a namespace-scoped parameter CRD, a reusable podSpec variable for deployments/jobs/pods, and user-facing message expressions. Migration uses audit mode, parses audit logs to match Gatekeeper denials, runs unit and E2E tests (dry-run on kind), and monitors CEL compilation/evaluation and the validation cost budget. Result: Gatekeeper is decommissioned and VAP runs in production with monitoring and a self-service exclusion workflow.
AI-written summary · about
chapters (17)
- 0:00Kubernetes security at Datadog
- 1:47Kubernetes scale and policy needs
- 2:51Migrating from Gatekeeper to VAP
- 5:16Sample policy: tutorial to production
- 10:31Policies with variables and parameters
- 13:23Policy scope for multiple resources
- 14:30Migration: Gatekeeper to VAP
- 16:56Monitoring VAP performance
- 19:46Policy evolution and benefits
- 20:50Day-two operations and improvements
- 23:41Q&A: Cluster resources in policies
- 25:05Q&A: Policy behavior with audit logs
- 25:50Q&A: Webhooks to VAP
- 26:31Q&A: Testing ValidatingAdmissionPolicies
- 27:13Q&A: Unit testing policies
- 28:17Q&A: Client-side policy validation
- 29:01Closing remarks
related talks
28mEmbracing change: Policy-as-code for Kubernetes with OPA and Gatekeeper
34mGatekeeper: Flexible, Shareable Policy for Kubernetes
14mPolicy-as-code for Kubernetes with Gatekeeper
27mEmbracing change: Policy-as-code with OPA and Gatekeeper
34mEmbracing Change, Policy as code for Kubernetes with OPA and Gatekeeper
10mThe Power of OPA Gatekeeper: Enforcing Kubernetes Access Control to secure your runtime
34mGatekeeper: Flexible, Shareable Policy for Kubernetes
33mBringing Pod Security Admission to Your Kubernetes Distribution
