armada/armada/conf/default.py

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'))
}