CoreWeave
Search
K

Region, Hardware and Firmware

Select the data center region, hardware, and firmware for a Virtual Server

Region

Virtual Servers may be deployed across any of data center regions. CoreWeave's data center regions are broken up into three geographical buckets - US East, Central and West. Each provides redundant 200Gbps+ public Internet connectivity from Tier 1 global carriers, and are connected to each other using 400Gbps+ of dark fiber transport to allow for easy, free transfers of data within CoreWeave Cloud.
Note
It is generally advised to select the data center region closest to your location.
Cloud UI
CLI
Terraform

Deployment method: CoreWeave Cloud UI

From the CoreWeave Cloud UI Virtual Server deployment menu, click the Region expandable, then select the region in which to host the Virtual Server by clicking on it.
Screenshot of region selector

Deployment method: Kubernetes CLI

Selecting a region for your Virtual Server is simple using the Kubernetes manifest file.
The data center region you'd like to use is configured by setting its label under the region selector in the spec section of the manifest.

Data center region configuration options

Variable name
Variable type
Description
Default value
region
String
The label of the data center in which you'd like to deploy the Virtual Server.
3
In the example below, the Chicago (ORD1) data center is chosen under spec.region.
---
apiVersion: virtualservers.coreweave.com/v1alpha1
kind: VirtualServer
metadata:
name: vs-ubuntu2004-block-pvc
spec:
region: ORD1

Deployment method: Terraform

The data center region for the Virtual Server can be defined in the vs_region variable in your variables.tf file.

Data center region configuration options

Variable name
Variable type
Description
Default value
vs_region
String
The data center region in which to deploy the Virtual Server.
ORD1 (Chicago)
Terraform example:
variable "vs_region" {
description = "Region default from vs_regions map"
default = "ORD1"
}

Hardware

CoreWeave Cloud offers several high-performance NVIDIA GPUs and CPUs for Virtual Servers. The amount of memory with which a Virtual Server runs can also be specified.
Cloud UI
CLI
Terraform

Deployment method: CoreWeave Cloud UI

From the CoreWeave Cloud UI Virtual Server deployment menu, click the Hardware expandable, then select the hardware kind (GPU or CPU) and the hardware itself. Clicking the GPU tab will display all available GPU options, and clicking the CPU tab will do the same for CPU types.
Note
For more information on hardware, see Node Types.
The GPU Count, Core Count, and Memory amount (in Gi) are chosen using the sliders at the bottom of the section.
Screenshot of the Virtual Server hardware configuration menu
Each hardware selector also displays a meter registering the availability of that hardware type per region.

Resource definition (YAML only)

In the CRD's YAML manifest, the .spec.resources.definition field is used as a way to describe the chosen resources. The default value of this field is a - this is just a placeholder, which can be changed to any string.
Screenshot of the .spec.resources.definition field, mirrored in plain text below
Example in plain text:
spec:
region: LAS1
resources:
cpu:
count: 4
type: amd-epyc-milan
definition: a
memory: 12Gi

Deployment method: Kubernetes CLI

Using the Kubernetes CLI deployment method, hardware options are configured under the resources block in the Virtual Server manifest (e.g., virtual-server.yaml).
In this method, hardware designations are defined as a kind of resource, just like CPU type, CPU core count, GPU count, and memory.

Hardware and resource configuration options

Each of the following fields will be configured underneath the resources block in the YAML manifest.
Field name
Type
Description
resources
Array
The top-level field. Defines the resources and devices allocated to the Virtual Server.
resources.definition
String
The resource definition. Defaults to a.
resources.cpu
Array
All CPU configuration fields.
resources.cpu.type
String
The type of CPU to allocate.
resources.cpu.count
Int
The number of CPU cores to allocate.
resources.gpu
Array
All GPU configuration fields.
resources.gpu.type
String
The type of GPU to allocate.
resources.gpu.count
Int
The number of GPU units to allocate.
resources.memory
String
The amount of memory to allocate.
Example
resources:
gpu:
type: Quadro_RTX_4000
count: 1
cpu:
count: 4
memory: 16Gi

Deployment method: Terraform

The Virtual Server's hardware and resource options are configured as variables passed into the Virtual Server Terraform module.

Hardware and resource configuration options

The following table describes the variables usable for Virtual Server configuration, as well as whether or not the module defines any default values for them.
Variable name
Variable type
Description
Default value
vs_cpu_count
Integer
Number of CPUs requested.
This option cannot be used if vs_gpu_enable is set to true.
3
vs_gpu_enable
Boolean
Enable GPU (or not) for this Virtual Server.
true
vs_gpu
String
The name of the GPU model to be used for the Virtual Server.
Required if vs_gpu_enable is set to true.
Quadro_RTX_4000
vs_gpu_count
Integer
Number of GPUs requested for the Virtual Server.
Required if vs_gpu_enable is set to true.
1
vs_memory
String
Memory specified for the Virtual Server, in Gi (eg. 16Gi).
16Gi
Example
variable "vs_memory" {
description = "Virtual Server RAM"
default = "16Gi"
}
variable "vs_root_storage" {
description = "Virtual Server root device storage (i.e 80Gi)"
default = "80Gi"
}
variable "vs_os_type" {
default = "linux"
}
variable "vs_image" {
description = "OS image"
default = "ubuntu2004-docker-master-20210601-ord1"
}
variable "vs_gpu" {
description = "GPU"
default = "Quadro_RTX_4000"
}
variable "vs_gpu_enable" {
default = true
}
variable "vs_cpu_count" {
default = 3
}
variable "vs_gpu_count" {
default = 1
}

Firmware

Firmware identification information for Virtual Servers is set by the Virtual Machine Instance (VMI). The firmware's UUID (MAC address) is set by the BIOS, and its system-serial number is set by the VMI's SMBIOS.
The firmware's UUID defaults a randomly-generated alphanumeric string. Both numbers are static across Virtual Server restarts.
It is optional to set these; if not set, they will have randomly-generated defaults.
Note
You can read more about virtual hardware firmware configuration in the Kubevirt documentation, or see how its exposure is implemented in CoreWeave by viewing our API reference.
Cloud UI
CLI
Terraform

Deployment method: CoreWeave Cloud UI

In the Cloud UI, firmware options must be set using the YAML editor. Firmware options are not currently exposed through the YAML manifest by default, so they must be added to the key-value map in the manifest.
Example in plain text:
firmware:
uuid: 5d307ca9-b3ef-428c-8861-06e72d69f223
serial: e4686d2c-6e8d-4335-b8fd-81bee22f4815
Deployment method: Kubernetes CLI
Firmware options for Virtual Servers are configured under the firmware stanza.
Field name
Field type
Description
firmware
Array
Top-level field for firmware definitions
firmware.uuid
String
The UUID of the firmware to be deployed
firmware.serial
String
The system-serial-number in SMBIOS of the firmware to be deployed
Example in plain text:
firmware:
uuid: 906820cf-53b7-45d6-9a6e-1c389cb81016
serial: 5cc667ec-0bba-4011-af9e-05659c64d061
Deployment method: Terraform
Note
It is not currently natively possible to configure firmware when using Terraform as the deployment method. This setting may be configured in conjunction with use of the Cloud UI or the Kubernetes CLI. Alternatively, you may extend the Virtual Server Terraform module yourself.