Controlling Node Placement

Overview

The default behavior for the director is to randomly select nodes for each role, usually based on their profile tag. However, the director provides the ability to define specific node placement. This is a useful method to:

  • Assign specific node IDs
  • Assign custom hostnames
  • Assign specific IP addresses

InfraRed support this method in tripleo-overcloud plugin.

Defining topology and controlling node placement

The examples show how to provision several nodes with virsh plugin and then how to use controlling node placement option during Overcloud Deploy.

Topology

Topology include 1 undercloud, 3 controllers, 2 compute and 3 ceph nodes:

$ ir virsh -vvvv
    --topology-nodes=undercloud:1,controller:3,compute:2,ceph:3 \
    --host-address=seal52.qa.lab.tlv.redhat.com \
    --host-key ~/.ssh/my-prov-key \
    [...]

Overcloud Install

This step require Undercloud to be installed and tripleo-overcloud introspection and tagging to be done:

$ ir tripleo-overcloud -vvvv
    --version=12 \
    --deploy=yes \
    --deployment-files=virt \
    --specific-node-ids yes \
    --custom-hostnames ceph-0=storage-0,ceph-1=storage-1,ceph-2=storage-2,compute-0=novacompute-0,compute-1=novacompute-1,controller-0=ctrl-0,controller-1=ctrl-1,controller-2=ctrl-2 \
    --predictable-ips yes \
    --overcloud-templates ips \
    [...]

Warning

Currently node IPs need to be provided as user template with –overcloud-templates

InfraRed Inventory

After Overcloud install, InfraRed directory contains the overcloud nodes with their new hostnames:

$ ir workspace node-list
+---------------+------------------------------+-------------------------------------------------------+
| Name          | Address                      | Groups                                                |
+---------------+------------------------------+-------------------------------------------------------+
| undercloud-0  | 172.16.0.5                   | tester, undercloud, openstack_nodes                   |
+---------------+------------------------------+-------------------------------------------------------+
| hypervisor    | seal52.qa.lab.tlv.redhat.com | hypervisor, shade                                     |
+---------------+------------------------------+-------------------------------------------------------+
| novacompute-0 | 192.168.24.9                 | overcloud_nodes, compute, openstack_nodes             |
+---------------+------------------------------+-------------------------------------------------------+
| novacompute-1 | 192.168.24.21                | overcloud_nodes, compute, openstack_nodes             |
+---------------+------------------------------+-------------------------------------------------------+
| storage-2     | 192.168.24.16                | overcloud_nodes, ceph, openstack_nodes                |
+---------------+------------------------------+-------------------------------------------------------+
| storage-1     | 192.168.24.6                 | overcloud_nodes, ceph, openstack_nodes                |
+---------------+------------------------------+-------------------------------------------------------+
| storage-0     | 192.168.24.18                | overcloud_nodes, ceph, openstack_nodes                |
+---------------+------------------------------+-------------------------------------------------------+
| ctrl-2        | 192.168.24.10                | overcloud_nodes, network, controller, openstack_nodes |
+---------------+------------------------------+-------------------------------------------------------+
| ctrl-0        | 192.168.24.15                | overcloud_nodes, network, controller, openstack_nodes |
+---------------+------------------------------+-------------------------------------------------------+
| ctrl-1        | 192.168.24.14                | overcloud_nodes, network, controller, openstack_nodes |
+---------------+------------------------------+-------------------------------------------------------+