Kubernetes CLI
Deploy Virtual Servers via the Kubernetes CLI
Virtual Servers are deployed to CoreWeave Cloud as Custom Resource Definitions (CRDs), so the kubectl
command line tool may be used to deploy Virtual Servers onto CoreWeave Cloud. CRDs may also be edited from the Cloud UI using the YAML editor on the Virtual Servers deployment page.
Prerequisites
Before you can access CoreWeave Cloud, you must first request an account.
To use the Kubernetes CLI as your deployment method, you will first need to obtain valid access credentials in the form of a kubeconfig
file. See Obtain Access Credentials for more information.
Configuration examples
CoreWeave provides example YAML manifests on GitHub.
Configuration quick reference
The table below is intended as a quick-reference guide for all available configuration options using the Kubernetes CLI deployment method. Learn more about each configuration option in their respective pages under Virtual Server Configuration Options.
Field | Type | Description |
---|---|---|
region | String | Defines the region where the Virtual Server is deployed |
os | Defines the Operating System type | |
os.type | String | The Operating System type - Linux/Windows |
affinity | Affinity | Defines affinity for Virtual Server |
os.enableUEFIBoot | Boolean | Enable the UEFI bootloader |
resources | Defines the resources and devices allocated to the Virtual Server | |
resources.definition | String | The resource definition - defaults to 'a' |
resources.cpu | Defines the CPU allocation | |
resources.cpu.type | String | The type of CPU to allocate |
resources.cpu.count | Int | The number of CPU cores to allocate |
resources.gpu | Defines the GPU allocation | |
resources.gpu.type | String | The type of GPU to allocate |
resources.gpu.count | Int | The number of GPU(s) to allocate |
resources.memory | String | The amount of memory to allocate |
storage | Defines the root storage and additional storage devices | |
storage.root | Defines the root file system PVC | |
storage.root.size | String | The volume size |
storage.root.source | DataVolumeSource | The DataVolume source for the root file system |
storage.root.storageClassName | String | The storage class name for the root PVC |
storage.root.volumeMode | String | The volume mode for the root PVC |
storage.root.accessMode | String | The access mode name for the root PVC |
storage.root.ephemeral | Boolean | Sets whether the root disk is ephemeral |
storage.additionalDisks | [] | A list of PVC references to be added as disk devices |
storage.additionalDisks[ ].name | String | Name of the disk |
storage.additionalDisks[ ].spec | VolumeSource | The VolumeSource for the disk |
storage.additionalDisks[].readOnly | Boolean | Whether or not the additional disk is readOnly ; default is false ; see: Read-only additional disks |
storage.additionalDisks[].serial | String | The root disk serial number, when not specified Virtual Server generates serial and preserves between restarts. |
storage.filesystems | [] | A list of PVC references to be mounted |
storage.filesystems[ ].name | String | Name of the mount |
storage.filesystems[ ].mountPoint | String | Desired mount point, defaults to /mnt if not specified |
storage.filesystems[ ].spec | VolumeSource | The VolumeSource for the file system mount |
storage.swap | String | Adds swap volume to system in specific size. |
users | [] | A list of users to be added by cloud-init (if supported by the OS) |
users[ ].username | String | Username for the user |
users[ ].password | String | Password for the user |
users[ ].sshpublickey | String | An SSH public key for the user |
network | Defines the network configuration | |
network.directAttachLoadBalancerIP | Boolean | Directly attach a loadbalancer IP to the Virtual Server |
network.floatingIPs | [] | A list of service references to be added as floating IPs |
network.floatingIPs[ ].serviceName | String | Name of the service |
network.tcp | Defines the TCP network configuration | |
network.tcp.ports | [] | List of TCP ports to expose |
network.udp | Defines the UDP network configuration | |
network.udp.ports | [] | List of UDP ports to expose |
network.public | Boolean | Determines whether a public IP will be assigned |
network.macAddress | String | Sets the MAC address for the Virtual Server - if not provided, the Virtual Server generates a unicast/local type MAC address |
network.dnsConfig | PodDNSConfig | Defines the DNS parameters of the VS. Defult value is DNSClusterFirst. |
network.dnsPolicy | DNSPolicy | Sets the DNS policy for VS. The default value is ClustrFirst |
firmware | Firmware | Firmware identification fields |
firmware.UUID | String | UUID reported by the VMI bios; defaults to a randomly generated UUID |
firmware.Serial | String | The system-serial-number in SMBIOS. |
cloudInit [¹] | String | Define any cloud-init parameters |
runStrategy | VirtualMachineRunStrategy | Defines the RunStrategy parameter. Default value is RerunOnFailure . |
useVirtioTransitional | Boolean | Enables virtio-transitional to support compatibility with old guest operating systems. Default value is false . |
terminationGracePeriodSeconds | Number | Specifies the number in seconds before the guest is killed. Allows shutting down operating system gracefully. Defaults to 300 for Windows, 60 for Linux. |
initializeRunning | Boolean | Defines whether or not the Virtual Server will be started as soon as it is created and initialized |