Bug 1484363

Summary: [RFE] Ironic driver for RHV/oVirt
Product: Red Hat OpenStack Reporter: Ramon Acedo <racedoro>
Component: instack-undercloudAssignee: James Slagle <jslagle>
Status: CLOSED ERRATA QA Contact: mlammon
Severity: high Docs Contact:
Priority: high    
Version: 13.0 (Queens)CC: asimonel, bfournie, brault, cory.bannister, cylopez, danken, dtantsur, dyasny, jniu, kboumedh, knylande, mburns, mlammon, molasaga, ohochman, rhel-osp-director-maint, roxenham, sasha, sknauss, srevivo, weiyongjun, ykaul
Target Milestone: Upstream M2Keywords: FutureFeature, Triaged
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/tripleo/+spec/ovirt-driver
Whiteboard:
Fixed In Version: openstack-ironic-staging-drivers-0.9.0-0.20180220235748.de59d74.el7ost openstack-tripleo-common-8.4.1-0.20180224032817.d51ed49.el7ost instack-undercloud-8.2.1-0.20180228034814.945b1d0.el7ost python-ovirt-engine-sdk4-4.2.6-1.el7ev Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-27 13:34: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: 1576570    
Bug Blocks: 1500557, 1419948, 1591546, 1737900, 1738253    

Description Ramon Acedo 2017-08-23 10:49:44 UTC
A number of use cases require a virtualised OSP control plane to allow operators to reduce the number of bare metal machines required by the OSP control plane, including the controllers and, potentially, a number of composable roles as part of the same control plane.

An OSP Overcloud control plane virtualised with RHV/oVirt requires an Ironic driver for  OSP-d to manage the VMs that will make it (e.g. 3 controllers plus a number of composable roles).

This driver will work with Ironic in the Undercloud being integrated with director/TripleO.

Comment 2 Dmitry Tantsur 2017-08-23 13:04:41 UTC
We also need:

1. packaging for ironic-staging-drivers (may already exist)
2. adding ironic-staging-drivers to RHOS
3. installing ironic-staging-drivers on the undercloud
4. changing the undercloud to allow enrolling nodes with ovirt
5. downstream CI

Comment 3 Dmitry Tantsur 2017-10-02 10:57:00 UTC
Changing the component, as this RFE won't be implemented in ironic itself. The last bit will be the undercloud, so moving to it.

Also status -> ASSIGNED, as the undercloud patches are not up yet.

Comment 4 Jaromir Coufal 2017-10-12 17:00:42 UTC
*** Bug 1500146 has been marked as a duplicate of this bug. ***

Comment 8 Dmitry Tantsur 2017-12-07 10:12:40 UTC
All patches merged, ready for testing.

Comment 10 Ramon Acedo 2018-03-01 16:29:10 UTC
Feedback from Rhys of the initial testing:

1) The current OSP13 puddle has a number of issues with overcloud deployment. I had to use a slightly older puddle (2018-02-14.1) which has its own set of bugs, but these will be ironed out over the next few weeks.

2) We ran into some problems with the current oVirt driver as part of ironic_staging_drivers - we couldn’t power on nodes through a ’nova boot’ process, but ‘ironic node-set-power-state’ worked just fine; Karim was really helpful here and identified a bug due to differences in the oVirt SDK. This has been patched: https://review.openstack.org/#/c/548943/1 - please can we get some reviews on this as it’s absolutely essential - without this patch we can’t provision.

3) The import of instackenv files to define the nodes is slightly broken for oVirt machines. It forces you to specify fields that you don’t need to pull in, and then the import hangs until you remove those (see ~/fix-ovirt-hosts.sh), then the import process continues and you can introspect

4) We need to properly document the package requirements and dependencies for the oVirt driver - you need to install a number of packages and manually install the oVirt SDK - you can use pip, or we need to ship the RPM in OSP (see ~/before-import.sh)

5) RHV doesn’t support VLAN trunking, so you have to create a new vNIC for each network traffic type and specify these, although there’s a multi-nics template example that ships with openstack-tripleo-heat-templates that can be customised to suit.

Comment 11 Ramon Acedo 2018-03-01 16:31:37 UTC
For the reference, scripts referenced in comment 10:

$ cat fix-ovirt-hosts.sh
#!/usr/bin/env bash

source ~/stackrc
for i in 1 2 3; do ironic node-update osp13-controller$i remove driver_info/ovirt_address; ironic node-update osp13-controller$i remove driver_info/ovirt_password; ironic node-update osp13-controller$i remove driver_info/ovirt_username; done


$ cat before-import.sh
#!/usr/bin/env bash

sudo easy_install pip
sudo yum install -y gcc python-devel libxml2-devel libcurl-devel
sudo pip install ovirt-engine-sdk-python
sudo systemctl restart openstack-ironic-conductor

Comment 13 mlammon 2018-05-09 04:17:32 UTC
Installed latest and successfully deployed an overcloud with ovirt drivers.

Comment 18 mlammon 2018-05-14 14:54:15 UTC
This was successfully deployed with latest osp13 and using the python-ovirt-engine-sdk4 package which is now part of release

Comment 21 errata-xmlrpc 2018-06-27 13:34: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