Deleting Overcloud Nodes

There may be situations where it’s necessary to remove specific Compute nodes from the overcloud. In those situations, it is possible to remove specific nodes by following the process outlined in on this page.

Note

If you’re just scaling down nodes and plan to re-use them. Use Scaling overcloud roles instead. For temporary issues with nodes, they can be blacklisted temporarily using DeploymentServerBlacklist. This guide is specifcally for removing nodes from the environment.

Note

If your Compute node is still hosting VM’s, ensure they are migrated to another Compute node before continuing.

Note

If you are using Provisioning Baremetal Before Overcloud Deploy then follow those scale-down instructions to call openstack overcloud node delete with a --baremetal-deployment argument instead of passing a list of nodes to delete as arguments.

To delete a specific node from the Overcloud. We use the following command:

openstack overcloud node delete --stack $STACK_NAME <hostname-of-compute-node>

Note

This command uses the hostnames as it’s referring to nodes from the Ansible inventory. While there is currently a process to translate Nova UUID’s to the hostname. This may be removed in future releases. As such, it is recommended to use the hostname instead of Nova UUIDs.

This command updates the heat stack with updated numbers and list of resource IDs (which represent nodes) to be deleted.

Train

In Train, we added a user confirmation to the scale down command to prevent accidental node removal. To skip it, please use “–yes”.

Train

Starting in Train and onward, openstack overcloud node delete can take a list of server hostnames instead of instance ids. However they can’t be mixed while running the command. Example: if you use hostnames, it would have to be for all the nodes to delete.

Note

Before deleting a compute node or a cephstorage node, please make sure that the node is quiesced, see Quiescing a Compute Node or Quiescing a CephStorage Node.

Note

You can generate the list of hostname in the Ansible inventory using:

. stackrc
tripleo-ansible-inventory --stack <STACK_NAME> --static-yaml-inventory overcloud-inv.yaml

This file will contain the Ansible inventory in use and help to identify the hostname that needs to be passed to the node delete command.

Note

Once the node deletion has completed. Be sure to decrement the node count in your templates. For example, if removing a compute node, then the ComputeCount: value needs to be updated to reflect the new correct number of nodes in the environment.