Skip to content

Conversation

@vakwetu
Copy link

@vakwetu vakwetu commented Dec 22, 2025

No description provided.

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0b34e98cefc24060b0cd3c0d65f5254a

openstack-meta-content-provider FAILURE in 9m 20s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

Right now, we hardcode the region.  Lets get it from keystoneApi
instead.  Also, cinder uses os_region_name and not region_name.
And we were missing a setting in ironic.

Add tests for region support
@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/40b85831a552466e9bdad1be1972d598

✔️ openstack-meta-content-provider SUCCESS in 2h 50m 34s
✔️ nova-operator-kuttl SUCCESS in 42m 49s
nova-operator-tempest-multinode FAILURE in 24m 47s
✔️ nova-operator-tempest-multinode-ceph SUCCESS in 2h 32m 31s

"openstack_region_name": "regionOne", // fixme
"default_project_domain": "Default", // fixme
"default_user_domain": "Default", // fixme
"openstack_region_name": region,
Copy link
Contributor

Choose a reason for hiding this comment

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

nit:why not directly inlined keystoneAPI.GetRegion() for consistency
its not being used anywhere else

l logr.Logger,
namespace string,
) (*gophercloud.ServiceClient, error) {
authURL := auth.GetKeystoneAuthURL()
Copy link
Contributor

Choose a reason for hiding this comment

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

This call already queries the KeystoneAPI CR. So re-quering the same CR now at L687 feels unnecessary duplication. Could you refactor KeytoneAPI CR usage now that we only query it once and use that CR to both get the AuthURL and the Region?

}
}

keystoneAPI, err := keystonev1.GetKeystoneAPI(ctx, h, namespace, map[string]string{})
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to check if the KeystoneAPI returned here has ready status before we can user GetRegion() call on it and trust that it returns a valid value? I.e. does KeystoneAPI.status.region always has a valid value even right after the creation of the KeystoneAPI CR itself?

}

// Get region from keystoneAPI
keystoneAPI, err := keystonev1.GetKeystoneAPI(ctx, h, instance.Namespace, map[string]string{})
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not super happy about querying KeystoneAPI CR here. So far instead of querying KeystoneAPI on each individual sub CR level for getting the KeystoneAuthURL we queried that data in the Nova CR level and passed it down from there to each sub CR like NovaAPI. This is why below we use "keystone_internal_url": instance.Spec.KeystoneAuthURL,. So I suggest to either

  • a. pass down the Region as well the same way
  • b. pass down neither the AuthURL nor the Region and query both on each subCR level.

I personally prefer the option a) for both, but I really want to avoid handling AuthURL as a) but Region as b).

(this comment is valid for the proposed changes for each individual subCR in this PR)

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: vakwetu
Once this PR has been reviewed and has the lgtm label, please ask for approval from gibizer. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/689d2f6e0aa64dafa9be66312f925308

✔️ openstack-meta-content-provider SUCCESS in 2h 54m 49s
✔️ nova-operator-kuttl SUCCESS in 44m 00s
✔️ nova-operator-tempest-multinode SUCCESS in 2h 36m 30s
nova-operator-tempest-multinode-ceph FAILURE in 26m 42s

@vakwetu
Copy link
Author

vakwetu commented Jan 14, 2026

@gibizer hey - let me know if you're happy with this approach. If so, I'll work on getting the tests to pass and doing final testing.

The namespace parameter was added in the region_name changes but is not
actually used in the function. Remove it from the function signature and
all call sites.
The region tests were failing because they checked the config immediately
after updating the spec, but the config might not have been regenerated
yet. Wrap all config checks in an Eventually block to wait for the
config to be regenerated with the new region value.
According to the OpenStack inter-service region audit, Nova connects to
Barbican via Castellan, which uses 'barbican_region_name' (NOT 'region_name')
as the config option. Castellan defines this as a StrOpt in its Barbican
key manager, and it's used for endpoint discovery.

This change:
- Updates the [barbican] section in nova.conf template to use
  barbican_region_name instead of region_name
- Updates functional tests to verify barbican_region_name instead of
  region_name

Reference: openstack-inter-service-region-audit.md line 30, 275-276
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants