Skip to main content
This reference architecture helps platform engineers and infrastructure teams deploy a production-ready CoreWeave environment with Terraform. It uses a modular repository that provisions a VPC, CoreWeave Kubernetes Service (CKS) cluster, node pools, and Distributed File Storage (DFS) in two phases. Phase 1 creates the networking and cluster. Phase 2 adds node pools and DFS volumes after the cluster runs and you have kubeconfig. CoreWeave AI Object Storage is an optional add-on you can include at any point. Use this page to understand what the architecture deploys, the prerequisites you must meet, and how the repository is organized before you begin Phase 1.

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

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 root main.tf wires them together.
  • Don’t commit terraform.tfvars. Create it from terraform.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.
Last modified on June 4, 2026