Repository navigation
Feature: add Source Openstack - #616
ekrichbaum wants to merge 13 commits into
Conversation
This document provides detailed information on the OpenStack source integration, including installation, authentication, configuration, object mapping, and validation processes.
Added OpenStack as a source type with relevant dependencies and instructions.
without the None check, Openstack addresses are not added.
Added OpenStack source configuration with various options.
semx
left a comment
There was a problem hiding this comment.
Thanks for reworking this. I re-ran the points from #600 against real openstacksdk 4.22.0 resources built from DevStack-shaped responses, faking only openstack.connect and the proxies; on the #600 version that setup reproduces every observation from the DevStack run.
Fixed: the internal/nova host mapping (the hypervisor lands in nova and the VMs are created), the hypervisor interface type is kept, the primary IPv4 is the first fixed IP, the platform is QEMU, the docs no longer mention the build arg or AWS, the sync_tags message points to options that exist, and the stopped-winner flip for duplicate names is gone.
Still open:
1. Interface identity when ports change. Names are positional and the shared matcher tries the name first.
- Two ports on
private(…:41→ 10.0.0.41,…:42→ 10.0.0.42), then detach…:41: on the next runvNIC1 (private)gets MAC…:42and both IPs, a second MAC object for…:42is created, andvNIC2 (private)loses 10.0.0.42. Expected:vNIC2keeps its MAC and IP andvNIC1goes orphaned. - One port on
privatereplaced by a port onpublic: the interface keeps the namevNIC1 (private)with descriptionvNIC1 (public); the #600 version renamed it.
Giving each discovered port the name of the existing interface that already has its MAC, and keeping a name only when the match was by MAC, covers both.
2. Same server name in two availability zones. Virtual disks are looked up by display name (root (web1)), so with web1 in nova and in az2 one VM ends up without its root disk. #615 changes inventory.py to match disks per resolved VM, which fixes this; either rebase on it once it's in, or pair disks per VM via get_virtual_disks() as the vmware source does.
3. Environment leaks into the connection. openstack.connect() runs without load_yaml_config=False, load_envvars=False: with OS_INTERFACE=admin set the source silently uses the admin endpoints, and with OS_CLOUD set it fails with Region RegionOne is not a valid region name for cloud ….
We'll take care of these at merge: refresh uv.lock, pin openstacksdk to an exact version like the oVirt source, drop the removed-settings block, drop the local object_synced_by_other_source now that #617 moves it into SourceBase, fix the DEBUG3 dump (service_details is a plain dict), add the CODEOWNERS line, and squash.
No description provided.