What You’ll Build
- Deployment with automatic version creation from CI
- Two environments (staging, production) with resource selectors
- Verification that checks deployment health before promotion
- Approval policy requiring sign-off for production
Prerequisites
- Ctrlplane account (app.ctrlplane.dev or self-hosted)
- API key (Settings → API Keys)
- GitHub repository with CI workflow
Step 1: Create a System
A system groups related deployments. This is typically a product, platform, or bounded context.Step 2: Register Resources
Resources are your deployment targets. In production, you’d sync these from Kubernetes or cloud providers. For this quickstart, we’ll create them manually.Step 3: Create Environments
Environments use selectors to dynamically match resources. When you add new clusters with matching metadata, they’re automatically included.Step 4: Create a Job Agent
Job agents execute your deployments. We’ll use GitHub Actions, but Ctrlplane supports Kubernetes jobs, ArgoCD, or custom agents.id as JOB_AGENT_ID.
Step 5: Create a Deployment
A deployment represents your application. The job agent config tells Ctrlplane how to trigger deployments.id as DEPLOYMENT_ID.
Step 6: Add Deployment Workflow
Create.github/workflows/deploy.yml in your repository:
CTRLPLANE_API_KEY to your repository secrets.
Step 7: Integrate CI Build
Add version creation to your build workflow (.github/workflows/build.yml):
Step 8: Add Verification Policy
Create a policy that requires health checks before considering a deployment successful:Step 9: Add Production Approval
Create a policy requiring approval before production deployments:Step 10: Test the Pipeline
- Push a commit to
main - CI builds and creates a version in Ctrlplane
- Ctrlplane creates releases for staging and production
- Staging deployment executes immediately
- Verification runs health checks
- Production waits for approval
- After approval, production deploys and verifies
- Deployments → See version progression across environments
- Releases → Track individual release status
- Jobs → View execution details and logs
What You’ve Built
✅ Deployment orchestration with automatic environment progression✅ Resource inventory with metadata-based environment selectors
✅ Verification ensuring deployment health before promotion
✅ Policy gates requiring approval for production
Next Steps
Policies
Configure gradual rollouts, concurrency limits, and custom gates
Verification
Add Datadog metrics, custom HTTP checks, and more
Resources
Sync resources from Kubernetes, AWS, or custom providers
Job Agents
Deploy with Kubernetes jobs, ArgoCD, or custom agents
Troubleshooting
Jobs not being created:- Verify resource metadata matches environment selectors
- Check deployment has a job agent configured
- Review policy denials in the Releases view
- Test the health endpoint manually
- Check the success condition syntax
- Review measurement data in the verification details
- Ensure job agent type is
github - Verify workflow filename matches
jobAgentConfig - Check GitHub App permissions