Ironic is not very smart in determining which disk device to use for deployment. More specifically, it uses the smallest disk which is larger than 4 GiB. This is very often the wrong choice, so "root device hints" [1] has to be set [2] on nodes with multiple disks. What is even worse, when several disks with the same size are present, an essentially random one is picked, so it's not consistent between deployments. UI has to support setting these hints to ensure correct deployment. There are two potential implementation strategies, you can choose to implement either or both: 1. Allow a user to set hints before introspection (!) and deployment. This will probably involve creating a form accepting serial, size, model, wwn and wwn with vendor extensions. This has to run before introspection so that it sets the correct local_gb value for scheduling. 2. Allow a user to pick one of the devices found by introspection. This is probably more user-friendly, but it requires that UI updates properties/local_gb to match the picked disk. It also has to be repeated after every introspection. I'm putting severity urgent, as failure to set root device hints results in known issues, like bug 1445155. [1] https://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#specifying-the-disk-for-deployment-root-device-hints [2] http://tripleo.org/advanced_deployment/root_device.html#root-device
There is a workflow/action to configure the root device which may possibly be helpful to implement #2: https://github.com/openstack/tripleo-common/blob/c0c4f8/workbooks/baremetal.yaml#L585 - "Define the root device for nodes. Can be either a list of device names (without /dev) to choose from or one of two strategies: largest or smallest. For it to work this command should be run after the introspection."
*** Bug 1526449 has been marked as a duplicate of this bug. ***