This page explains how to modify, delete, and inspect Node Pools in CKS. Use it when you need to scale workloads, update hardware configurations, or remove unused resources. You can modify Node Pools after creation, either by editing them in the Cloud Console, or by deploying an adjusted manifest with Kubernetes. To reboot Nodes in a Node Pool, see Reboot Nodes.Documentation Index
Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
Use this file to discover all available pages before exploring further.
Modify a Node Pool using the Cloud Console
- To modify a Node Pool using 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:

-
To modify a deployed Node Pool, click the vertical dot menu to the right of the Node Pool, then click Edit to open the manifest editor:

- After making the desired 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 this 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 here:
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 for example-nodepool to 5 Nodes, run:
Example command
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 does not 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.
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 withkubectl, add the following alias to your shell configuration:
Example output
Target specific GPUs or CPUs
To ensure your workloads are scheduled on the correct hardware in a cluster with different GPU types, use a combination of Kubernetes resource requests and node affinities. CKS uses these native Kubernetes scheduling features, giving you maximum flexibility to 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 for selecting GPU types, and the CPU label only for selecting CPU types. A specific CPU type cannot be explicitly selected for GPU Nodes.
Example specs
Select one of the following example specs:- 8xH100
- 8xB300
- 8xRTX Pro 6000
Kubernetes allows resources to be scheduled with
requests and limits. When only limits are specified, the requests are set 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. Configurations are referenced by their unique identifier, which is called anodeProfile.
The sections below explain 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 that have been 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, the resulting nodeProfile is automatically staged onto your NodePool as the default nodeProfile and staged onto your Nodes. Existing Nodes may need a reconfigure reboot for the configuration updates to take effect.
Additionally, when updates are available for your Node Pool, such as a newer ncore image, CKS generates a new pending configuration for you. The new configuration does not take effect until you stage it. See the Stage Node Pool Configurations section for an example.
Stage Node Pool configurations
How a new configuration is applied depends on what triggered it and yournodeConfigurationUpdateStrategy.type:
| Strategy | Behavior |
|---|---|
| Manual | Updates require user intervention to stage onto NodePool. Updates can be inspected in the pendingNodeConfigurations and applied with cwic. |
| 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.
Once a new configuration is applied 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, the resulting new configuration is automatically staged and applied. For example, if you modify the image or gpu fields in your Node Pool spec, that is a user-initiated update. Additionally, any Nodes already in the Node Pool are staged with the auto-applied NodeProfile.
These user-initiated Node Pool configuration updates are automatically staged and applied regardless of which tools you use to update your Node Pool (including kubectl, Cloud Console, GitOps or cwic).
The example below shows a Node Pool that has been configured properly and shows an automatically staged configuration:
example-nodepool.yaml
GitOps
Using GitOps tools such as ArgoCD is the primary way to manage your Node Pool configuration in environments where you do not have a kubeconfig or the correct permissions. Since user-initiated updates to the Node Pool configuration are auto-staged with the defaultOnSpecUpdate strategy, you don’t need to take any further action when updating your Node Pool configuration with GitOps aside from reconfigure rebooting existing Nodes.
Below is an example git diff of the minimum required YAML updates to set GPU version to 570:
Cloud Console
Similar to kubectl 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 thestatus.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 being made to the Node Pool:

CoreWeave Intelligent CLI
Use the CoreWeave Intelligent CLI (cwic) to stage a pending configuration. After staging 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 to be rebooted with a reconfiguration reboot to have the new Node Profile applied. See Applying Node Pool Configuration Updates for more information how to perform a reconfigure reboot.
Roll back to a previous Node configuration
You can roll back to a previous configuration. All configurations that were previously applied to the Node Pool are enumerated in thenodeConfigurationRevisions for your reference.
If you want to manually roll back a configuration, you must set your nodeConfigurationUpdateStrategy to Manual so that it does not get overwritten by a new auto-staged configuration.
With the CoreWeave Intelligent CLI (cwic) rollback command, you can omit the nodeProfile identifier to perform a simple rollback 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 is set 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 the section above for more details.
Manually update ncore image
To request support with updating your ncore images, complete the following steps:
-
Check the
ncoreversions on your Nodes by 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 getting your
ncoreimage versions, contact Support to request a reboot of your Nodes to upgrade yourncoreimages. Before contacting Support, identify the specificncoreimage you want to update to. This enables Support to monitor and confirm that Nodes have upgraded successfully. See the following instructions for contacting support: Contact Support.
Delete a Node Pool using the Cloud Console
- To delete a Node Pool using 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.