We get an increasing number of requests for higher customization of the deployment process, especially for the undercloud. For example, 1. setting kernel parameters, 2. complex partition layouts, 3. LVM and software RAID support. We could extend Ironic to support every one, but this is going to take a lot of time and can violate the scope of the project. An attempt to partially solve it, deploy steps, apparently got stuck. It will anyway be a complete refactoring of the deployment process. The alternative is the ansible deploy driver [1]. Instead of running Ironic Python Agent code, it executes Ansible playbooks from ironic-conductor on a node. The huge benefit for us is that an operator can provide custom playbooks, extending both deployment and cleaning in any way required. We will need to move this driver from the staging repository to the main tree. Then we will need to update puppet-ironic, instack-undercloud and tripleo-common to support enrolling nodes with it. The default deploy method will not change, we will just provide an alternative. [1] http://ironic-staging-drivers.readthedocs.io/en/latest/drivers/ansible.html
Status update: all initial patches have landed. The testing, however, uncovered issues with temporary URLs in ironic, so I'll need a bit more time here. Upstream documentation is being written as I test it.
Attaching an already approved bug fix that makes this feature much more reliable.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2018:2086