Environments
Environments are system-level resource groupings that represent distinct deployment stages (like dev, staging, production) and control how software progresses through your infrastructure.
Environments in Ctrqzlplane are organizational units that group related resources and deployments within a system. They represent different deployment targets like “Development”, “Staging”, or “Production”.
Key Properties
- ID: Unique identifier (UUID)
- Name: Human-readable identifier
- System ID: The system this environment belongs to
- Directory: Path structure for organization
- Description: Additional information about the environment
- Policy ID: References environment policies that control deployment rules
- Resource Selector: Conditions to select which resources belong to this environment
- Metadata: Key-value pairs for additional context
How Environments Work
Environments work with systems to create a matrix of deployment targets. Each system can have multiple environments, allowing for deploying a system to different environments (dev, staging, production, etc.).
Environment Policies
Environments have associated policies that control:
- Approval requirements (manual or automatic)
- Deployment success criteria (all, some, or optional)
- Concurrency limits for deployments
- Rollout durations (gradual deployment)
- Release sequencing (wait or cancel)
- Release windows (time periods when deployments are allowed)
Lifecycle Events
When an environment is updated (particularly its resource selector), the system:
- Finds resources that newly match the selector
- Finds resources that no longer match the selector
- Creates release targets for newly matched resources
- Removes release targets for unmatched resources
- Dispatches appropriate hooks when resources enter or exit environments
Environments act as a key organizational and policy enforcement layer in the deployment process, controlling how and when deployments can occur to different resources within systems.