Modify a Node Pool using the Cloud Console
-
In the Cloud Console, navigate to Node Pools.
All existing Node Pools are listed on the Node Pool dashboard, including the Node Pool containing Control Plane CPU Nodes:

-
Click the vertical dot menu to the right of the Node Pool, then click Edit to open the manifest editor:

- After you make your changes, click the Submit button.
Changes may take a moment to display on the Cloud Console. To learn more about the current status of the Node Pool, hover over the status in the dashboard.
Modify a Node Pool using Kubernetes
To modify a Node Pool, first edit the Node Pool manifest, thenapply the changed manifest using kubectl.
For example, take a Node Pool deployed with the following manifest:
example-nodepool.yaml
10 Nodes. To change it to have only 5 Nodes, first adjust the manifest to change the targetNodes value to 5 as highlighted in the following example:
example-nodepool.yaml
kubectl:
Example command
- Removing Nodes from a Node Pool can take some time.
- See Scaling strategies to learn how CKS responds when the value of
targetNodeschanges.
Use kubectl scale
You can also use kubectl to adjust targetNodes without editing the manifest directly.
For example, to set targetNodes to 5 in example-nodepool, run:
Example command
kubectl scale writes to targetNodes and is not compatible with Node Pools that use targetRacks (rack-based instance types such as GB200 and GB300). To scale a rack-based Node Pool, edit the manifest and update targetRacks directly, then apply with kubectl apply.Verify the updated Node Pool
To check the status of the modified Node Pool, target the Node Pool withkubectl get nodepool. For example:
Example command
Example output
CURRENT (the number of Nodes currently in the Node Pool) should match the value of TARGET (the number of Nodes desired in the Node Pool).
To see further details about the Node Pool in YAML format, target the Node Pool with kubectl get nodepool -o yaml.
Example command
View Node details
Standardkubectl get nodes output doesn’t include CoreWeave-specific metadata such as instance type, reservation status, ncore version, and Node state. Use the CoreWeave Intelligent CLI (cwic) or a custom kubectl command to view these details.
The following sections describe both approaches.
Use CoreWeave Intelligent CLI
For installation and authentication instructions, see the CoreWeave Intelligent CLI repository. To list all Nodes in your cluster with CoreWeave-specific details, run:Example output
Use kubectl
To view CoreWeave-specific Node details with kubectl, add the following alias to your shell configuration:
Example output
Enable Node Pool prefill
Prefill is opt in and off by default. You can enable prefill on new and existing Node Pools when creating or editing the Kubernetes manifest. For an overview of Node Pool prefill, see Node Pool prefill. Prefill has two implementation requirements:- Autoscaling must be disabled. Set
autoscaling: false. You cannot enable prefill and autoscaling on the same Node Pool. - The Node Pool must use
computeClass: default. Prefill is not supported on Spot Node Pools.
prefill block under spec in the Node Pool manifest. For example:
example-nodepool.yaml
timeout: Maximum timeout is 24 hours. Default is 24 hours.maxNodes: Can be between 1 and 4. Default is 3.
kubectl apply -f example-nodepool.yaml. For an overview of prefill behavior and Node conditions, see Node Pool prefill. For full field details, see the Node Pool reference.
Target specific GPUs or CPUs
To ensure CKS schedules your workloads on the correct hardware in a cluster with different GPU types, use a combination of Kubernetes resource requests and node affinities. CKS uses these built-in Kubernetes scheduling features so you can allocate resources for your workloads:| Label | Use case |
|---|---|
gpu.nvidia.com/class or gpu.nvidia.com/model | Use when you want to select Nodes with a cloud-neutral label. |
node.coreweave.cloud/type | Use when you want to select a CoreWeave-specific instance type. |
node.coreweave.cloud/cpu | Use when you want to select a specific CPU type. |
These labels are mutually exclusive: use the GPU label only to select GPU types, and the CPU label only to select CPU types. You can’t explicitly select a specific CPU type for GPU Nodes.
Example specs
Select one of the following example specs:- 8xH100
- 8xB300
- 8xRTX Pro 6000
Kubernetes lets you schedule resources with
requests and limits. When you specify only limits, Kubernetes sets the requests to the same amount as the limit.Manage Node Pool configuration
CKS uses Node Pool configurations to boot Nodes into a desired state. Configurations contain information like the ncore (OS) image and GPU Driver version. A unique identifier called anodeProfile references each configuration.
The following sections describe how CKS generates configurations, how to stage a pending configuration, and how to roll back to a previous one.
To see a Node Pool’s active configuration, inspect the status.nodeProfile and the status.nodeConfigurationRevisions, which displays information for all the configurations staged onto your Node Pool, including the active one.
example-nodepool.yaml
Generate Node Pool configurations
CKS generates Node Pool configurations based on the Node Pool spec. If you modify the following fields in your Node Pool spec, CKS generates a new configuration for you: With the default nodeConfigurationUpdateStrategy.typeOnSpecUpdate, CKS automatically stages the resulting nodeProfile onto your NodePool as the default nodeProfile and onto your Nodes. Existing Nodes may need a reconfigure reboot for the configuration updates to take effect.
When updates are available for your Node Pool, such as a newer ncore image, CKS also generates a new pending configuration for you. The new configuration doesn’t take effect until you stage it. See the Stage Node Pool Configurations section for an example.
Stage Node Pool configurations
How CKS applies a new configuration depends on what triggered it and yournodeConfigurationUpdateStrategy.type:
| Strategy | Behavior |
|---|---|
| Manual | Updates require user intervention to stage onto the NodePool. You can inspect updates in pendingNodeConfigurations and apply them with the CoreWeave Intelligent CLI. |
| OnSpecUpdate | Updates are staged automatically only if triggered by a direct change to the NodePool spec (for example, modifying the GPU driver version). |
| Always | Updates are staged automatically for both user-initiated spec changes and any available upstream updates. |
example-nodepool.yaml
pendingNodeConfiguration. Staging the configuration sets it as the active status.nodeProfile and tracks it in the nodeConfigurationRevisions.
After CKS applies a new configuration to the Node Pool, new Nodes boot into the desired configuration. Existing Nodes in your Node Pool may need a reconfigure reboot to pick up the new configuration. For more information, see CoreWeave Intelligent CLI.
User-initiated updates
WithOnSpecUpdate set as your nodeConfigurationUpdateStrategy, when you initiate an update to your Node Pool, CKS automatically stages and applies the resulting new configuration. For example, if you modify the image or gpu fields in your Node Pool spec, that’s a user-initiated update. CKS also stages any Nodes already in the Node Pool with the auto-applied NodeProfile.
CKS automatically stages and applies these user-initiated Node Pool configuration updates regardless of which tools you use to update your Node Pool (including kubectl, Cloud Console, GitOps or cwic).
The following example shows a properly configured Node Pool with an automatically staged configuration:
example-nodepool.yaml
GitOps
GitOps tools such as ArgoCD are the primary way to manage your Node Pool configuration in environments where you don’t have a kubeconfig or the correct permissions. Because CKS auto-stages user-initiated updates to the Node Pool configuration with the defaultOnSpecUpdate strategy, you don’t need to take any further action when you update your Node Pool configuration with GitOps aside from reconfigure rebooting existing Nodes.
The following example shows a git diff of the minimum required YAML updates to set the GPU version to 570:
Cloud Console
Similar tokubectl and GitOps workflows, you can make updates to the Node Pool manifest in the Cloud Console. Doing so automatically stages a new Node Profile on the status.nodeProfile field and stages any existing Nodes in the Node Pool. New Nodes boot into this newly staged Node Profile.
The following example shows a GPU update made to the Node Pool:

CoreWeave Intelligent CLI
Use the CoreWeave Intelligent CLI (cwic) to stage a pending configuration. After you stage the configuration, only newly created Nodes use the configuration. You need to initiate a reconfigure reboot on the existing Nodes in the Node Pool to Apply Node Pool updates.
The following steps walk through how to stage a pending configuration:
-
To see which Node Pools have a pending configuration:
NODEPOOL-NAME: Replace with the name of your Node Pool.
PENDING CONFIGcolumn lists the Node Pools with a new configuration that you can stage to the Node Pool: -
Stage the new Node Pool configuration:
Example command
NODEPOOL-NAME: Replace with the name of your Node Pool.
-
To determine which existing Nodes in the Node Pool need the new configuration:
Example command
NODEPOOL-NAME: Replace with the name of your Node Pool.
In this example,Example output (see the RECONFIGURE column)node-0needs a reconfiguration reboot to apply the new Node Profile. For more information on how to perform a reconfigure reboot, see Apply Node Pool updates.
Roll back to a previous Node configuration
You can roll back to a previous configuration. ThenodeConfigurationRevisions enumerates all configurations previously applied to the Node Pool for your reference.
If you want to manually roll back a configuration, you must set your nodeConfigurationUpdateStrategy to Manual so that a new auto-staged configuration doesn’t overwrite it.
With the CoreWeave Intelligent CLI (cwic) rollback command, you can omit the nodeProfile identifier to roll back to the previous configuration, or you can specify a nodeProfile to roll back to an exact configuration.
Example command
NODEPOOL-NAME: Replace with the name of your Node Pool.NODEPROFILE: Replace with the Node Profile you want to roll back to.
status.nodeProfile to the desired configuration. Any new Nodes delivered to your Node Pool boot into the rolled-back configuration, and existing Nodes in your cluster may require a reconfigure reboot to pick up the configuration. See Stage Node Pool configurations for more details.
Manually update ncore image
In environments where automated configuration updates aren’t available, you can request a manual ncore image update from CoreWeave Support. To request support with updating your ncore images, complete the following steps:
-
Check the
ncoreversions on your Nodes usinggrepandncore-image. Replace[NODE-ID]with your Node ID:This returns thencoreimage tag and type, for example: -
To see the
ncoreimage for all Nodes in a given Node Pool, replace[NODE-POOL-NAME]with the name of your Node Pool: -
After you get your
ncoreimage versions, contact Support to request a reboot of your Nodes to upgrade yourncoreimages. Before you contact Support, identify the specificncoreimage you want to update to. This lets Support monitor and confirm that Nodes upgrade successfully. For instructions on contacting support, see Contact Support.
Delete a Node Pool using the Cloud Console
- In the Cloud Console, navigate to Node Pools.
- Click the vertical dot menu beside the Node Pool to delete, then click Delete to open the confirmation modal.

Delete a Node Pool using Kubernetes
To delete a Node Pool using Kubernetes, delete the Node Pool resource directly usingkubectl:
nodepool resource first removes all Nodes associated with the Node Pool from the cluster, then deletes the Node Pool resource itself.
Next steps
- Reboot Nodes to reboot Nodes manually.
- Apply Node Pool updates to apply Node Pool updates by queuing a reconfigure reboot.
- Connect to a Node to troubleshoot issues with a Node.