ironic/releasenotes/notes/keystoneauth-adapter-opts-ca4f68f568e6cf6f.yaml
Pavlo Shchelokovskyy 308e414a57 Introduce keystoneauth adapters for clients
Currently ironic explicitly or implicitly sets the API urls
for most services in the config.
This is quite fragile and we should move to discovery from
the keystone catalog eventually.

To support this, this patch registers `keystoneauth1.adapter.Adapter`
options to all config sections for service clients auth.
Among others it exports `interfaces` option that we set to
['internal', 'public'] by default.
Other exported options are `service_type`, `service_name`, `region_name`
and `endpoint_override`.
The latter will eventually be used by all clients to specify a specific
endpoint to use (for example in noauth mode).

Effectively this patch starts to move all clients code to load client
configuration from config for all of auth, session and adapter.

The first to move is [service_catalog] section, with [conductor]api_url
option being deprecated in favor of [service_catalog]endpoint_override.
A sane default of 'service_type' = 'baremetal' is set for this config
section as well.

More patches moving other clients to consume these new options and
deprecate some other options will follow.

Change-Id: I1283ef3b4d736ac089df0cc74a5850a93b24b6ab
Partial-Bug: #1699547
Related-Bug: #1699542
2017-08-22 06:07:19 +00:00

42 lines
1.6 KiB
YAML

---
upgrade:
- |
To facilitate automatic discovery of services from the keystone catalog,
the configuration file sections for service clients may include these
configuration options: ``service_type``, ``service_name``,
``valid_interfaces``, ``region_name`` and other keystoneauth Adaper-related
options.
These options together must uniquely specify an endpoint for a service
registered in the keystone catalog.
Consult the ``keystoneauth`` library documentation for full list of
available options, their meaning and possible values.
Default values for ``service_type`` are set by ironic to sane defaults
based on required services and their entries in ``service-types-authority``.
The ``valid_interfaces`` option defaults to ``['internal', 'public']``.
The ``region_name`` option defaults to ``None`` and must be explicitly set
for multi-regional setup for endpoint discovery to succeed.
The configuration file sections where these new options are available are:
- service_catalog
features:
- |
Options for service endpoint discovery can now be set per-service in
appropriate service configuration file sections:
- ``[service_catalog]`` for baremetal API discovery
deprecations:
- |
Configuration option ``[conductor]api_url`` is deprecated
and will be ignored in the Rocky release.
Instead, use ``[service_catalog]endpoint_override`` configuration option
to set specific ironic API address if automatic discovery of ironic API
endpoint from keystone catalog is not desired.
This new option defaults to ``None`` and must be set explicitly if needed.