Skip to content

Feature: add Source Openstack - #616

Open
ekrichbaum wants to merge 13 commits into
bb-Ricardo:developmentfrom
ekrichbaum:Openstack_on_development
Open

ekrichbaum wants to merge 13 commits into
bb-Ricardo:developmentfrom
ekrichbaum:Openstack_on_development

Conversation

@ekrichbaum

Copy link
Copy Markdown

No description provided.

@ekrichbaum ekrichbaum changed the title Openstack on development Feature: Add Openstack Source Oct 31, 2026
@ekrichbaum ekrichbaum changed the title Feature: Add Openstack Source Feature: add Source Openstack Oct 31, 2026

@semx semx left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 run vNIC1 (private) gets MAC …:42 and both IPs, a second MAC object for …:42 is created, and vNIC2 (private) loses 10.0.0.42. Expected: vNIC2 keeps its MAC and IP and vNIC1 goes orphaned.
  • One port on private replaced by a port on public: the interface keeps the name vNIC1 (private) with description vNIC1 (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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants