Design a Spec
Project Basics
Zone selection, project name, environment stage, and Terraform version.
Project Basics
The first section of the Design a Spec form establishes the project identity and target environment.
Fields
| Field | Type | Validation | Description |
|---|---|---|---|
| Zone | Select | Required | Parent workspace for this spec |
| Project Name | Text input | Required, lowercase, a-z0-9 + hyphens, max 25 chars | Used in resource naming and Terraform state paths |
| Environment Stage | Select | Required | development, staging, or production |
| Terraform Version | Select | Required | Default: 1.11.4. Also available: 1.10.5, 1.9.8 |
Zone Selection
The zone dropdown shows all zones owned by the current user. If no zones exist, the user must create one first. The selected zone determines the Terraform state path prefix:
{zone-name}/{project-name}/{environment}/{region}/terraform.tfstateProject Name
The project name is used extensively:
- Resource naming in Terraform (e.g.,
{project}-{env}-eks-cluster) - State file path (see Terraform State)
- Display in the UI (spec cards, job listings)
Names are enforced lowercase with only letters, numbers, and hyphens. This ensures compatibility with cloud resource naming constraints across all three providers.
Environment Stage
Three options with distinct implications:
| Stage | Purpose | Naming Convention |
|---|---|---|
development | Dev/testing | {project}-dev-* |
staging | Pre-production | {project}-staging-* |
production | Production workloads | {project}-prod-* |
The environment stage affects Terraform state isolation — each stage gets its own state file, even within the same project and region.