126 lines
4.0 KiB
Python
126 lines
4.0 KiB
Python
# Copyright 2017 The Armada Authors.
|
|
#
|
|
# 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 keystoneauth1 import loading as ks_loading
|
|
from oslo_config import cfg
|
|
|
|
from armada.conf import utils
|
|
|
|
default_options = [
|
|
cfg.ListOpt(
|
|
'armada_apply_roles',
|
|
default=['admin'],
|
|
help=utils.fmt('IDs of approved API access roles.')),
|
|
cfg.StrOpt(
|
|
'auth_url',
|
|
default='http://0.0.0.0/v3',
|
|
help=utils.fmt('The default Keystone authentication url.')),
|
|
cfg.StrOpt(
|
|
'certs',
|
|
default=None,
|
|
help=utils.fmt(
|
|
"""
|
|
Absolute path to the certificate file to use for chart registries
|
|
""")),
|
|
cfg.StrOpt(
|
|
'kubernetes_config_path',
|
|
default='/home/user/.kube/',
|
|
help=utils.fmt('Path to Kubernetes configurations.')),
|
|
cfg.BoolOpt(
|
|
'middleware',
|
|
default=True,
|
|
help=utils.fmt(
|
|
"""
|
|
Enables or disables Keystone authentication middleware.
|
|
""")),
|
|
cfg.StrOpt(
|
|
'project_domain_name',
|
|
default='default',
|
|
help=utils.fmt(
|
|
"""
|
|
The Keystone project domain name used for authentication.
|
|
""")),
|
|
cfg.StrOpt(
|
|
'project_name',
|
|
default='admin',
|
|
help=utils.fmt('The Keystone project name used for authentication.')),
|
|
|
|
# TODO(fmontei): Add support for multiple SSH keys, not just one site-wide
|
|
# one.
|
|
cfg.StrOpt(
|
|
'ssh_key_path',
|
|
default='/home/user/.ssh/',
|
|
help=utils.fmt(
|
|
"""Optional path to an SSH private key used for
|
|
authenticating against a Git source repository. The path must be an absolute
|
|
path to the private key that includes the name of the key itself.""")),
|
|
cfg.IntOpt(
|
|
'lock_acquire_timeout',
|
|
default=60,
|
|
min=0,
|
|
help=utils.fmt(
|
|
"""Time in seconds of how long armada will attempt to
|
|
acquire a lock before an exception is raised""")),
|
|
cfg.IntOpt(
|
|
'lock_acquire_delay',
|
|
default=5,
|
|
min=0,
|
|
help=utils.fmt(
|
|
"""Time in seconds of how long to wait between attempts
|
|
to acquire a lock""")),
|
|
cfg.IntOpt(
|
|
'lock_update_interval',
|
|
default=60,
|
|
min=0,
|
|
help=utils.fmt(
|
|
"""Time in seconds of how often armada will update the
|
|
lock while it is continuing to do work""")),
|
|
cfg.IntOpt(
|
|
'lock_expiration',
|
|
default=600,
|
|
min=0,
|
|
help=utils.fmt(
|
|
"""Time in seconds of how much time needs to pass since
|
|
the last update of an existing lock before armada forcibly removes it
|
|
and tries to acquire its own lock""")),
|
|
cfg.BoolOpt(
|
|
'enable_operator',
|
|
default=False,
|
|
help=utils.fmt(
|
|
"""Determines whether the operator has to be enabled
|
|
to apply charts instead of armada-api itself""")),
|
|
cfg.BoolOpt(
|
|
'go_wait',
|
|
default=False,
|
|
help=utils.fmt(
|
|
"""Determines whether the wait process has to be done
|
|
via armada-go using client-go library""")),
|
|
]
|
|
|
|
|
|
def register_opts(conf):
|
|
conf.register_opts(default_options)
|
|
ks_loading.register_auth_conf_options(conf, group='keystone_authtoken')
|
|
|
|
|
|
def list_opts():
|
|
return {
|
|
'DEFAULT': default_options,
|
|
'keystone_authtoken': (
|
|
ks_loading.get_session_conf_options()
|
|
+ ks_loading.get_auth_common_conf_options()
|
|
+ ks_loading.get_auth_plugin_conf_options('password')
|
|
+ ks_loading.get_auth_plugin_conf_options('v3password'))
|
|
}
|