Bug 1472360

Summary: [RFE] Support ansible deploy driver for Ironic in the undercloud
Product: Red Hat OpenStack Reporter: Dmitry Tantsur <dtantsur>
Component: openstack-ironicAssignee: Dmitry Tantsur <dtantsur>
Status: CLOSED ERRATA QA Contact: mlammon
Severity: medium Docs Contact:
Priority: medium    
Version: 13.0 (Queens)CC: bfournie, jschluet, mburns, racedoro, rhel-osp-director-maint, srevivo
Target Milestone: Upstream M2Keywords: FutureFeature, TechPreview, Triaged
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/tripleo/+spec/ansible-deploy
Whiteboard:
Fixed In Version: openstack-ironic-10.0.1-0.20180123173432.2c630d9.el7ost instack-undercloud-8.1.1-0.20180117134321.el7ost openstack-tripleo-heat-templates-8.0.0-0.20180122224017.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-27 13:32:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1383244, 1477713, 1479814, 1527908    

Description Dmitry Tantsur 2017-07-18 14:39:49 UTC
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

Comment 2 Dmitry Tantsur 2017-12-07 10:30:18 UTC
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.

Comment 4 Dmitry Tantsur 2017-12-20 14:06:41 UTC
Attaching an already approved bug fix that makes this feature much more reliable.

Comment 7 errata-xmlrpc 2018-06-27 13:32:14 UTC
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