Policies
Policies in Ctrlplane define rules that govern how releases progress through your environments. They help you build confidence in your deployment process by enforcing quality gates, automating checks, and ensuring consistency across your infrastructure.Building Confidence Through Policies
The primary purpose of policies is to help you deploy with confidence. As releases move through your environments, policies ensure that each stage meets your quality standards before progressing to the next.- Start simple, grow complex - Begin with basic health checks in QA, add integration tests in staging, require approvals and verification in production
- Catch issues early - Run smoke tests in QA to catch problems before they reach production
- Automate quality gates - Let verification results automatically determine if a release can proceed
- Reduce deployment anxiety - Know that every production deployment has passed through proven checks
- Customize per environment - Apply stricter rules where they matter most
Policy Structure
A policy consists of:- Name & Description - Identify and document the policy’s purpose
- Selectors - Define which releases the policy applies to
- Rules - Specify the behavior or requirements
Policy Selectors
Selectors determine which releases a policy applies to. Policies only affect releases that match all specified selectors.Environment Selector
Target releases going to specific environments:Resource Selector
Target releases for specific resources:Deployment Selector
Target releases for specific deployments:Combined Selectors
Combine multiple selectors (all must match):Policy Rules
Rules define what the policy enforces. Multiple rules can be combined in a single policy.Verification Rule
Run automated checks after deployment:Gradual Rollout Rule
Control the pace of deployments across multiple targets:Approval Rule
Require manual approval before deployment:Policy Evaluation
When a release is created, Ctrlplane:- Finds matching policies - Evaluates selectors against the release
- Merges rules - Combines rules from all matching policies
- Applies rules - Enforces each rule type in order
Rule Execution Order
- Approval rules - Must be satisfied first
- Gradual rollout rules - Control deployment timing
- Verification rules - Run after deployment completes
Common Patterns
Environment Progression
Different requirements per environment:Critical Service Protection
Extra protection for critical services:Best Practices
Policy Organization
- ✅ Use descriptive policy names
- ✅ Document policy purpose in description
- ✅ Start with permissive policies and tighten over time
- ✅ Test policies in lower environments first
Selector Design
- ✅ Be specific with selectors to avoid unexpected matches
- ✅ Use environment selectors for environment-specific rules
- ✅ Use metadata for cross-cutting concerns (team, tier, etc.)
- ✅ Test selector expressions before applying
Rule Configuration
- ✅ Set reasonable timeouts and failure limits
- ✅ Use verification to catch issues before they impact users
- ✅ Require approvals for high-risk deployments
- ✅ Use gradual rollouts for large-scale deployments
Next Steps
- Approval - Require manual sign-off before deployment
- Environment Progression - Enforce deployment order
- Gradual Rollouts - Control deployment pace
- Retry - Configure automatic retry behavior
- Verification - Automated post-deployment checks
- Version Selector - Filter deployable versions
- Deployment Dependency - Create service dependencies
- Selectors - Deep dive into selector syntax