308e414a57
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
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
# Copyright 2016 Mirantis Inc
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from oslo_config import cfg
|
|
|
|
from ironic.common.i18n import _
|
|
from ironic.conf import auth
|
|
|
|
SERVICE_CATALOG_GROUP = cfg.OptGroup(
|
|
'service_catalog',
|
|
title='Access info for Ironic service user',
|
|
help=_('Holds credentials and session options to access '
|
|
'Keystone catalog for Ironic API endpoint resolution.'))
|
|
|
|
|
|
def register_opts(conf):
|
|
auth.register_auth_opts(conf, SERVICE_CATALOG_GROUP.name,
|
|
service_type='baremetal')
|
|
|
|
|
|
def list_opts():
|
|
return auth.add_auth_opts([], service_type='baremetal')
|