Policy-as-Code Template Library¶
48 production-ready policies for Kubernetes security and governance. Reduce the Rego learning curve. Copy, customize, deploy.
Template Library Overview
This library contains 28 Kyverno policies and 20 OPA/Gatekeeper constraint templates covering pod security, image validation, RBAC, resource governance, network security, mutation, and generation. Each template includes complete YAML/Rego, customization variables, validation commands, and real-world use cases.
What You Get¶
This library provides ready-to-use policies for common security scenarios:
- 48 Total Policies: 28 Kyverno + 20 OPA/Gatekeeper
- Complete Implementation: Full YAML/Rego with production-ready configuration
- Customization Tables: Variables, defaults, and purpose for each parameter
- Validation Commands: Test policies before enforcement
- Real-World Use Cases: 4-6 production scenarios per policy
- Testing Guidance: Audit mode, policy reports, troubleshooting
Template Categories¶
Decision Guide →¶
Choose between OPA and Kyverno based on team expertise, policy complexity, and operational requirements.
- Quick decision matrix (expertise, scope, complexity)
- Recommended starter paths
- Detailed comparison →
- Migration strategies →
Kyverno Templates →¶
28 production-ready Kyverno policies for Kubernetes admission control, mutation, and resource generation.
Pod Security → (5 Policies)¶
- Pod Security Standards Enforcement
- Host Namespace Restrictions
- Privilege Escalation Prevention
- Seccomp Profile Enforcement
- AppArmor Profile Requirements
Image Validation → (5 Policies)¶
- Image Digest Requirements
- Registry Allowlist and Tag Validation
- Cosign Image Signature Verification
- Base Image Enforcement
- CVE Scanning Gates
Resource Management → (5 Policies)¶
- Resource Limits and Requests Enforcement
- CPU and Memory Ratio Enforcement
- Ephemeral Storage Limits
- PVC Size Constraints
- HPA Configuration Requirements
Network Security → (5 Policies)¶
- Require Network Policies
- Egress Restrictions
- Ingress Class Requirements
- Ingress TLS Requirements
- Service Type Restrictions
Mutation & Generation (7 Policies)¶
- Mutation Policies → - Default Label Injection, Namespace Label Propagation, Logging Sidecar Injection, Monitoring Sidecar Injection
- Generation Policies → - Automatic ResourceQuota Generation, Default-Deny NetworkPolicy Generation, Automatic PodDisruptionBudget Generation
Labels & Metadata → (1 Policy)¶
- Mandatory Labels and Annotations
OPA/Gatekeeper Templates →¶
20 production-ready OPA constraint templates with complete Rego implementation for advanced policy enforcement.
Pod Security → (5 Policies)¶
- Privileged Container Prevention
- Host Namespace Restrictions
- Required Capabilities Drop
- Security Context Requirements
- Privilege Escalation Prevention
Image Security → (5 Policies)¶
- Registry Allowlist
- Tag Requirements
- Digest Enforcement
- Image Signature Verification Annotations
- Base Image Enforcement
RBAC → (5 Policies)¶
- Service Account Restrictions
- Role Binding Namespace Enforcement
- Cluster-Admin Prevention
- Privileged Verbs Restrictions
- Wildcard Resource Prevention
Resource Governance → (5 Policies)¶
- Resource Limits and Requests Enforcement
- Resource Quota Requirements
- LimitRange Requirements
- Ephemeral Storage Limits
- Storage Class Restrictions
JMESPath Patterns →¶
Advanced Kyverno pattern library for complex validation logic using JMESPath.
- Pattern fundamentals (projection, filtering, multi-select)
- Cross-field validation (requests vs limits, label dependencies)
- Complex conditions (nested logic, transformations)
- Advanced patterns → (aggregation, arithmetic, string manipulation)
- Enterprise examples → (registry policies, cost controls, HA requirements)
- Testing guide → (kyverno jp CLI, debugging, validation)
CI/CD Integration →¶
Automated policy validation in development pipelines:
- GitHub Actions pre-flight validation
- ArgoCD policy gating
- Pre-commit hooks
Usage Guide →¶
Template customization workflow, validation best practices, and quick start guides:
- Customization workflow
- Validation best practices
- Quick start guides
- Troubleshooting
Policy Engine Comparison¶
Choose the right policy engine for your team:
| Feature | Kyverno | OPA/Gatekeeper |
|---|---|---|
| Policies | 28 (validation, mutation, generation) | 20 (validation only) |
| Language | YAML + JMESPath | Rego (Go-like DSL) |
| Learning Curve | < 1 hour | 4-8 hours |
| Best For | Kubernetes-native teams, fast adoption | Multi-platform policies, complex logic |
| Mutation | ✅ Native support | ❌ Validation only |
| Generation | ✅ Auto-create resources | ❌ Validation only |
See Decision Guide → for detailed comparison and recommended starter paths.
Quick Start¶
Deploy in Audit Mode First
Always start with audit (Kyverno) or dryrun (OPA) mode. Monitor violations for 48 hours before switching to enforcement. Existing workloads may violate policies.
Kyverno Quick Start (5 minutes)¶
# 1. Install Kyverno
helm repo add kyverno https://kyverno.github.io/kyverno/
helm install kyverno kyverno/kyverno --namespace kyverno --create-namespace
# 2. Apply a policy (starts in audit mode)
kubectl apply -f https://raw.githubusercontent.com/adaptive-enforcement-lab/docs/main/kyverno-pod-security.yaml
# 3. Monitor violations
kubectl get polr -A # PolicyReports
kubectl get cpolr # ClusterPolicyReports
# 4. Switch to enforcement after validation
kubectl patch clusterpolicy require-pod-security \
--type merge \
-p '{"spec":{"validationFailureAction":"enforce"}}'
OPA/Gatekeeper Quick Start (10 minutes)¶
# 1. Install Gatekeeper
kubectl apply -f https://raw.githubusercontent.com/open-policy-agent/gatekeeper/master/deploy/gatekeeper.yaml
# 2. Deploy constraint template (policy logic)
kubectl apply -f https://raw.githubusercontent.com/adaptive-enforcement-lab/docs/main/opa-pod-security.yaml
# 3. Deploy constraint (starts in dryrun mode)
kubectl apply -f constraint.yaml
# 4. Monitor violations
kubectl get constraints
kubectl get k8sblockprivileged -o yaml
# 5. Switch to enforcement after validation
kubectl patch k8sblockprivileged block-privileged \
--type merge \
-p '{"spec":{"enforcementAction":"deny"}}'
Related Resources¶
- Kyverno Official Documentation - Kyverno guides and API reference
- OPA/Gatekeeper Documentation - Gatekeeper deployment and Rego reference
- Kubernetes Pod Security Standards - Baseline and Restricted profiles
- NIST SP 800-190 - Application Container Security Guide
- CIS Kubernetes Benchmark - Security configuration standards