RFE (libvirt-reproducer): support arbitrary # of nodes. create shared mechanism to discover provisioned domain/VM IP addresses

Bug #1777910 reported by Matt Young
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Expired
Medium
Unassigned

Bug Description

During the CI Squad's 12th Sprint (creation of libvirt reproducer), we created a libvirt reproducer that hard codes the node count to 2 ("subnode-0, subnode-1") as a simplification. After creating the 2 domains (VM's) we obtain the IP address by using a bash script that dumps the domain xml, and uses sed to pull out a MAC address, then uses the "ip neigh" command (with more grep/awk) to determine the IP [1].

This is then used to determine the IP address in a fixed/hard coded way [2] for the 2 provisioned nodes/domains. It's then used so that ansible inventory files can be created for subsequent tasks/functionality.

In order to support a reproducer that can work for an arbitrary number of nodes, the following issues/gaps were identified at the end of sprint 12:

1. need a generic way to enumerate VM's and for each, determine MAC + IP, including mappings from domain name --> mac+IP

2. dynamically set / build variables that could easily be used in with_dict or with_items looping blocks

3. While the bash script approach for doing this works, an alternate implementation might prove useful.

4. (related but a different issue) - suggestion from UA was to use the libvirt guest agent

I've prototyped something [3] that addresses 1-3, and could be updated for 4.

It's CI'd using travis currently, and has UT's.

This card tracks the RFE for libvirt reproducer to take a look to see if prototype might be useful for above goals, and/or to support arbitrary # of nodes.

[1] https://github.com/openstack/tripleo-quickstart/blob/master/roles/libvirt/setup/overcloud/files/get-domain-ip.sh

[2] https://github.com/openstack/tripleo-quickstart/blob/master/roles/libvirt/setup/overcloud/tasks/libvirt_nodepool.yml#L128

[3] https://github.com/halcyondude/ansible-role-virtvars

Tags: quickstart
Matt Young (halcyondude)
description: updated
Revision history for this message
Matt Young (halcyondude) wrote :

TLDR - the prototype role yields this:

# "virtvars_domain_list": [
# {
# "domain": "tiny0",
# "mac": "52:54:00:ee:d3:61"
# },
# {
# "domain": "tiny2",
# "mac": "52:54:00:2a:e5:c1"
# }
# ]

# "virtvars_mac_dict": {
# "tiny0": "52:54:00:ee:d3:61",
# "tiny2": "52:54:00:2a:e5:c1"
# }

Changed in tripleo:
status: New → Triaged
Revision history for this message
wes hayutin (weshayutin) wrote :

Work to be considered after zuulv3 migration is done... keep pushing out until that time.

Changed in tripleo:
milestone: rocky-3 → none
milestone: none → stein-1
Changed in tripleo:
milestone: stein-1 → stein-2
Changed in tripleo:
milestone: stein-2 → stein-3
Changed in tripleo:
milestone: stein-3 → train-1
Changed in tripleo:
milestone: train-1 → train-2
Changed in tripleo:
milestone: train-2 → train-3
Changed in tripleo:
milestone: train-3 → ussuri-1
Changed in tripleo:
milestone: ussuri-1 → ussuri-2
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-2 → ussuri-3
wes hayutin (weshayutin)
Changed in tripleo:
status: Triaged → Incomplete
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-3 → ussuri-rc3
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-rc3 → victoria-1
Changed in tripleo:
milestone: victoria-1 → victoria-3
Changed in tripleo:
milestone: victoria-3 → wallaby-1
Changed in tripleo:
milestone: wallaby-1 → wallaby-2
Changed in tripleo:
milestone: wallaby-2 → wallaby-3
Revision history for this message
Marios Andreou (marios-b) wrote :

This is an automated action. Bug status has been set to 'Incomplete' and target milestone has been removed due to inactivity. If you disagree please re-set these values and reach out to us on freenode #tripleo

Changed in tripleo:
milestone: wallaby-3 → none
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for tripleo because there has been no activity for 60 days.]

Changed in tripleo:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.