First Deployment
Define and Use Variables
Learn how to create flexible, reusable deployment configurations with Ctrlplane variables
Overview
Variables in Ctrlplane make your deployments dynamic and adaptable. They let you maintain consistent processes while accommodating differences across environments, resources, and releases.
Variable Types
Ctrlplane supports four primary variable types:
- Environment Variables: Values specific to each environment (dev, staging, production)
- Example:
database_url
,log_level
,api_endpoint
- Example:
- System Variables: Values shared across your entire system
- Example:
company_name
,team_id
,global_timeout
- Example:
- Resource Variables: Values specific to individual resources
- Example:
server_ip
,instance_size
,memory_allocation
- Example:
- Release Variables: Values tied to specific software releases
- Example:
version
,release_notes
,build_commit
- Example:
Defining Variables
Variables can be defined in the Ctrlplane UI or API:
- Navigate to the appropriate section (Environment, System, Resource, or Release)
- Select “Variables” or “Configuration”
- Add variable key-value pairs
- Save your changes
Using Variables in Deployments
Reference variables in your deployment scripts using double curly braces:
Variable Inheritance and Precedence
When variables with the same name exist at different levels:
- Resource variables take highest precedence
- Release variables are next
- Environment variables follow
- System variables have lowest precedence
This hierarchy lets you define defaults at the system level while overriding them for specific environments, releases, or resources.