What this deploys
The reference architecture uses a single Terraform root with separate modules for each resource. The two-phase apply exists because node pools and DFS volumes are Kubernetes manifests, which need a running cluster and kubeconfig before Terraform can create them.Phase 1: Networking and cluster
Phase 2: Node pools and storage
Optional: Object Storage add-on
Object Storage is independent of the two-phase apply, and you can add it at any point.Phase 1: Deploy core infrastructure
Create a VPC and CKS cluster, then download kubeconfig.Deploy core infrastructure
Phase 2: Add node pools and storage
Add node pools, DFS volumes, and optionally Object Storage.Add node pools and storage
Prerequisites
Before you begin, ensure you have the required tools and Identity and Access Management (IAM) roles described in the following sections.Tools
- Terraform >= 1.2.
- A CoreWeave account with a CoreWeave API token (create one in Console).
kubectl(required for Phase 2 and ongoing cluster interaction).
IAM roles
Your CoreWeave user or API token must have the appropriate IAM roles for each phase. The following table lists the minimum required roles.If you’re using legacy group role assignments, users in the
admin or write groups already have the CKS Admin and Object Storage Admin roles.Repository structure
Review the repository layout before you start to locate the files you edit during each phase. The reference architecture repository organizes all resources as modules. The rootmain.tf wires them together.
- Don’t commit
terraform.tfvars. Create it fromterraform.tfvars.example. - Don’t commit state files (
*.tfstate). Use a remote backend for production environments.
Outputs
After apply, Terraform outputs include:
If you include the Object Storage add-on, the following outputs are also available.