<div dir="ltr">Hello.<br><br>We faced a bug in keystoneauth, which haven't existed before Queens.<br><br>In our OpenStack deployments we use urls like <a href="http://controller:5000/v3">http://controller:5000/v3</a> for internal and admin endpoints and urls like <a href="https://api.example.org/identity/v3">https://api.example.org/identity/v3</a> for public endpoints. We set option public_endpoint in [default] section of the keystone.conf/nova.conf/cinder.conf/glance.conf/neutron.conf. For example, for keystone it is 'public_endpoint=<a href="https://api.example.org/identity/">https://api.example.org/identity/</a>'.<br><br>Since keystoneauth 3.2.0 or commit <a href="https://github.com/openstack/keystoneauth/commit/8b8ff830e89923ca6862362a5d16e496a0c0093c">https://github.com/openstack/keystoneauth/commit/8b8ff830e89923ca6862362a5d16e496a0c0093c</a> all internal client requests to the internal endpoints (for example, openstack server list from controller node) fail with 404 error, because it tries to do auto discovery at the <a href="http://controller:5000/v3">http://controller:5000/v3</a>. It gets {"href": "<a href="https://api.example.org/identity/v3/">https://api.example.org/identity/v3/</a>", "rel": "self"} because of the public_endpoint option, and then in function _combine_relative_url() (keystoneauth1/discover.py:405) keystoneauth combines <a href="http://controller:5000/">http://controller:5000/</a> with the path from public href. So after auto discovery attempt it goes to the wrong path <a href="http://controller:5000/identity/v3/">http://controller:5000/identity/v3/</a><br><br>Before this commit openstackclient made auth request to the <a href="https://api.example.org/identity/v3/auth/tokens">https://api.example.org/identity/v3/auth/tokens</a> (and it worked, because in our deployment internal services and console clients can access this public url). At best, we expect openstackclient always go to the <a href="http://controller:5000/v3/">http://controller:5000/v3/</a><br><br>This problem partially could be solved by explicitly passing public --os-auth-url <a href="https://api.example.org/identity/identity/v3">https://api.example.org/identity/identity/v3</a> to the console clients even if we want to use internal endpoints.<br><br>I found similiar bug in launchpad, but it haven't received any attention: <a href="https://bugs.launchpad.net/keystoneauth/+bug/1733052">https://bugs.launchpad.net/keystoneauth/+bug/1733052</a><br><br>What could be done with this behavior of keystoneauth auto discovery?<br><br>- Vlad<br></div>