Chapter 3. Preparing the overcloud role for hyperconverged nodes To use hyperconverged nodes, you need to define a role for it. Red Hat OpenStack Platform (RHOSP) provides the predefined role ComputeHCI for hyperconverged nodes. This role colocates the Compute and Ceph object storage daemon (OSD) services, allowing you to deploy them together on the same hyperconverged node. To use the ComputeHCI role, you need to generate a custom roles_data.yaml file that includes it, along with all the other roles you are using in your deployment. The following procedure details how to use and configure this predefined role. Procedure Generate a custom roles_data.yaml file that includes ComputeHCI , along with other roles you intend to use for the overcloud: For more information about custom roles, see Composable Services and Custom Roles and Examining the roles_data file . Create a new heat template named ports.yaml in ~/templates . Configure port assignments for the ComputeHCI role by adding the following configuration to the ports.yaml file: Replace <ext_port_file> with the name of the external port file. Set to "external" if you are using DVR, otherwise set to "noop". For details on DVR, see Configure Distributed Virtual Routing (DVR) . Replace <storage_mgmt_file> with the name of the storage management file. Set to one of the following values: Value Description storage_mgmt Use if you do not want to select from a pool of IPs, and your environment does not use IPv6 addresses. storage_mgmt_from_pool Use if you want the ComputeHCI role to select from a pool of IPs. storage_mgmt_v6 Use if your environment uses IPv6 addresses. storage_mgmt_from_pool_v6 Use if you want the ComputeHCI role to select from a pool of IPv6 addresses For more information, see Basic network isolation . Create a flavor for the ComputeHCI role: Configure the flavor properties: Map the flavor to a new profile: Retrieve a list of your nodes to identify their UUIDs: Tag nodes into the new profile: For more information, see Manually Tagging the Nodes and Assigning Nodes and Flavors to Roles . Add the following configuration to the node-info.yaml file to associate the computeHCI flavor with the ComputeHCI role:

Commands:
openstack overcloud roles generate -o /home/stack/roles_data.yaml Controller ComputeHCI Compute CephStorage
resource_registry: OS::TripleO::ComputeHCI::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/<ext_port_file>.yaml OS::TripleO::ComputeHCI::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml OS::TripleO::ComputeHCI::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml OS::TripleO::ComputeHCI::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml OS::TripleO::ComputeHCI::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/<storage_mgmt_file>.yaml
openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 computeHCI
openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "resources:CUSTOM_BAREMETAL"="1" --property "resources:DISK_GB"="0" --property "resources:MEMORY_MB"="0" --property "resources:VCPU"="0" computeHCI
openstack flavor set --property "capabilities:profile"="computeHCI" computeHCI
openstack baremetal node list
openstack baremetal node set --property capabilities='profile:computeHCI,boot_option:local' <UUID>
parameter_defaults: OvercloudComputeHCIFlavor: computeHCI ComputeHCICount: 3