nova/releasenotes/notes/set-endpoint-interface-for-ironicclient-a0b6b8f8dedc7341.yaml

10 lines
427 B
YAML
Raw Normal View History

pass endpoint interface to Ironic client Via change [1], ironicclient began to use endpoint_filter in the version negotiation code path, whereas it was previously unused if a fully-qualified endpoint had already been determined. Suddenly it was important that the `interface` part of this endpoint_filter be correct. Prior to ironicclient change [2], there was no way to pass an appropriate `interface` value through ironicclient's initialization, so the ironicclient used from nova would always end up with the default value, `public`, in the endpoint_filter. This would break in clouds lacking a public ironic API endpoint (see the referenced bug). With this change, we pass the value of the (standard, per ksa) `valid_interfaces` ironic config option into the ironicclient initialization, where (if and only if the ironicclient fix [2] is also present) it eventually gets passed through to the ksa Adapter initialization (which is set up to accept values from exactly that conf option) to wind up in the endpoint_filter. The effect is that nova's ironicclient will actually be using the interface from nova.conf throughout. (Because `valid_interfaces` is also used in recommended configuration setups - i.e. those that use the service catalog to determine API endpoints - to construct the endpoint_override used to initialize the ironicclient, the value used during version negotiation should be in sync with that used for regular API calls.) [1] I42b66daea1f4397273a3f4eb1638abafb3bb28ce [2] I610836e5038774621690aca88b2aee25670f0262 Change-Id: I5f78d21c39ed2fd58d2a0f3649116e39883d5a2c closes-bug: 1818295
2019-03-04 13:30:09 -08:00
---
fixes:
- |
[`bug 1818295 <https://bugs.launchpad.net/nova/+bug/1818295>`_]
Fixes the problem with endpoint lookup in Ironic driver where only public
endpoint is possible, which breaks deployments where the controllers have
no route to the public network per security requirement. Note that
python-ironicclient fix I610836e5038774621690aca88b2aee25670f0262 must
also be present to resolve the bug.