Variables
Best practices for using variables in templates.
Use System Variables for Identity
Leverage user.username and space.id for unique naming and isolation:
container_name: ${{ .user.username }}-${{ .space.name }}
hostname: ${{ .space.name }}This ensures containers have unique, identifiable names.
Store Secrets in User-Defined Variables
Use protected user-defined variables for credentials and API keys:
auth {
username = "${{ .var.registry_user }}"
password = "${{ .var.registry_pass }}"
}Mark variables as protected to encrypt them in the database.
Provide Clear Custom Variable Descriptions
Help users understand what values to provide:
Variable Name: git_branch
Description: Git branch to checkout (e.g., main, develop, feature/new-api)Clear descriptions reduce errors and support requests.
Validate Variable Usage
Test templates with different variable values:
- Empty values
- Special characters
- Long values
- Different user timezones
Ensure templates work correctly in all cases.
Document Required Variables
Clearly document which user-defined variables templates depend on:
This template requires:
- var.docker_registry: Docker registry URL
- var.registry_user: Registry username
- var.registry_pass: Registry passwordInclude this in template descriptions.
Use Consistent Naming
Follow naming conventions:
snake_casefor variable names- Descriptive names:
database_hostnotdb_h - Prefix related variables:
aws_region,aws_key,aws_secret