fuel-ccp-tests/fuel_ccp_tests/settings.py

268 lines
9.2 KiB
Python

# Copyright 2016 Mirantis, Inc.
#
# 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.
import os
import pkg_resources
import time
from fuel_ccp_tests.helpers import ext
_boolean_states = {'1': True, 'yes': True, 'true': True, 'on': True,
'0': False, 'no': False, 'false': False, 'off': False}
_default_conf = pkg_resources.resource_filename(
__name__, 'templates/default.yaml')
def get_var_as_bool(name, default):
value = os.environ.get(name, '')
return _boolean_states.get(value.lower(), default)
LOGS_DIR = os.environ.get('LOGS_DIR', os.getcwd())
TIMESTAT_PATH_YAML = os.environ.get(
'TIMESTAT_PATH_YAML', os.path.join(
LOGS_DIR, 'timestat_{}.yaml'.format(time.strftime("%Y%m%d"))))
SSH_LOGIN = os.environ.get('SSH_LOGIN', 'vagrant')
SSH_PASSWORD = os.environ.get('SSH_PASSWORD', 'vagrant')
SSH_NODE_CREDENTIALS = {"login": SSH_LOGIN,
"password": SSH_PASSWORD}
CONF_PATH = os.environ.get('CONF_PATH', os.path.abspath(_default_conf))
SHUTDOWN_ENV_ON_TEARDOWN = get_var_as_bool('SHUTDOWN_ENV_ON_TEARDOWN', True)
DEPLOY_SCRIPT = os.environ.get("DEPLOY_SCRIPT", None)
PRIVATE_REGISTRY = os.environ.get('PRIVATE_REGISTRY', None)
CCP_REPO = os.environ.get('CCP_REPO',
'https://github.com/openstack/fuel-ccp.git')
KARGO_REPO = os.environ.get('KARGO_REPO',
'https://github.com/kubespray/kargo.git')
KARGO_COMMIT = os.environ.get('KARGO_COMMIT', 'master')
KARGO_TIMEOUT = os.environ.get('KARGO_TIMEOUT', 2400)
KUBE_HOSTPATH_DYNAMIC_PROVISIONER = get_var_as_bool(
'KUBE_HOSTPATH_DYNAMIC_PROVISIONER', True)
KUBE_ADMIN_USER = os.environ.get('KUBE_ADMIN_USER', 'root')
KUBE_ADMIN_PASS = os.environ.get('KUBE_ADMIN_PASS', 'changeme')
KUBE_HOST = os.environ.get('KUBE_HOST', None)
KUBE_VERSION = os.environ.get("KUBE_VERSION", "v1.4.0")
KUBE_NETWORK_PLUGIN = os.environ.get("KUBE_NETWORK_PLUGIN", "calico")
KUBE_PROXY_MODE = os.environ.get("KUBE_PROXY_MODE", "iptables")
DOCKER_VERSION = float(os.environ.get("DOCKER_VERSION", "1.12"))
HYPERKUBE_IMAGE_REPO = os.environ.get('HYPERKUBE_IMAGE_REPO',
"quay.io/coreos/hyperkube")
HYPERKUBE_IMAGE_TAG = os.environ.get('HYPERKUBE_IMAGE_TAG', "{}_coreos.0"
.format(KUBE_VERSION))
ETCD_IMAGE_REPO = os.environ.get('ETCD_IMAGE_REPO', "quay.io/coreos/etcd")
ETCD_IMAGE_TAG = os.environ.get("ETCD_IMAGE_TAG", 'v3.0.1')
ETCD_DEPLOYMENT_TYPE = os.environ.get('ETCD_DEPLOYMENT_TYPE', "docker")
SERVICE_PATH = os.environ.get('SERVICE_PATH')
TEMPEST_SCRIPT_PATH = os.environ.get('TEMPEST_SCRIPT_PATH')
SEARCH_DOMAINS = os.environ.get('SEARCH_DOMAINS',
'ccp.svc.cluster.local').split(',')
BUILDER_WORKERS = os.environ.get('BUILDER_WORKERS', 1)
BUILD_IMAGES = get_var_as_bool('BUILD_IMAGES', True)
REGISTRY = os.environ.get('REGISTRY', "127.0.0.1:31500")
IMAGES_NAMESPACE = os.environ.get('IMAGES_NAMESPACE', 'mcp')
IMAGES_TAG = os.environ.get('IMAGES_TAG', 'newton')
DEFAULT_CUSTOM_YAML = {
"kube_network_plugin": KUBE_NETWORK_PLUGIN,
"kube_proxy_mode": KUBE_PROXY_MODE,
"docker_version": DOCKER_VERSION,
"etcd_image_repo": ETCD_IMAGE_REPO,
"etcd_image_tag": ETCD_IMAGE_TAG,
"kube_hostpath_dynamic_provisioner": "{}".format(
KUBE_HOSTPATH_DYNAMIC_PROVISIONER).lower(),
"etcd_deployment_type": ETCD_DEPLOYMENT_TYPE,
"hyperkube_image_tag": HYPERKUBE_IMAGE_TAG,
"hyperkube_image_repo": HYPERKUBE_IMAGE_REPO,
"kube_version": KUBE_VERSION,
"searchdomains": SEARCH_DOMAINS,
}
CALICO = {
"calico_node_image_repo": os.environ.get('CALICO_NODE_IMAGE_REPO'),
"calico_node_image_tag": os.environ.get('CALICO_NODE_IMAGE_TAG'),
"calicoctl_image_repo": os.environ.get('CALICOCTL_IMAGE_REPO'),
"calicoctl_image_tag": os.environ.get('CALICOCTL_IMAGE_TAG'),
"calico_version": os.environ.get('CALICO_VERSION'),
"calico_cni_image_repo": os.environ.get('CALICO_CNI_IMAGE_REPO'),
"calico_cni_image_tag": os.environ.get('CALICO_CNI_IMAGE_TAG'),
"ipip": get_var_as_bool('IPIP_USAGE', None),
"overwrite_hyperkube_cni": get_var_as_bool('OVERWRITE_HYPERKUBE_CNI',
None),
"enable_network_policy": get_var_as_bool('ENABLE_NETWORK_POLICY',
None),
}
for key, val in CALICO.items():
if val is not None:
DEFAULT_CUSTOM_YAML[key] = val
CCP_DEPLOY_CONFIG = '~/.ccp.deploy-config.yaml'
CCP_DEPLOY_TOPOLOGY = '~/.ccp.deploy-topology.yaml'
TOPOLOGY_PATH = os.environ.get('TOPOLOGY_PATH',
os.getcwd() + '/fuel_ccp_tests/templates/'
'k8s_templates/k8s_topology.yaml')
FUEL_CCP_KEYSTONE_LOCAL_REPO = os.environ.get('FUEL_CCP_KEYSTONE_LOCAL_REPO',
None)
FUEL_CCP_ORIGIN_URL = os.environ.get(
'FUEL_CCP_ORIGIN_URL',
'https://git.openstack.org:443/openstack/')
OS_RELEASE = os.environ.get('OS_RELEASE', 'stable/newton')
OS_REPOS = {
"openstack/horizon": {
"git_url": "https://github.com/openstack/horizon.git",
"git_ref": OS_RELEASE
},
"openstack/keystone": {
"git_url": "https://github.com/openstack/keystone.git",
"git_ref": OS_RELEASE
},
"openstack/nova": {
"git_url": "https://github.com/openstack/nova.git",
"git_ref": OS_RELEASE
},
"openstack/glance": {
"git_url": "https://github.com/openstack/glance.git",
"git_ref": OS_RELEASE
},
"openstack/heat": {
"git_url": "https://github.com/openstack/heat.git",
"git_ref": OS_RELEASE
},
"openstack/neutron": {
"git_url": "https://github.com/openstack/neutron.git",
"git_ref": OS_RELEASE
},
"openstack/sahara": {
"git_url": "https://github.com/openstack/sahara.git",
"git_ref": OS_RELEASE
},
"openstack/sahara-dashboard": {
"git_url": "https://github.com/openstack/sahara-dashboard.git",
"git_ref": OS_RELEASE
},
"openstack/murano": {
"git_url": "https://github.com/openstack/murano.git",
"git_ref": OS_RELEASE
},
"openstack/murano-dashboard": {
"git_url": "https://github.com/openstack/murano-dashboard.git",
"git_ref": OS_RELEASE
},
"openstack/cinder": {
"git_url": "https://github.com/openstack/cinder.git",
"git_ref": OS_RELEASE
},
"openstack/ironic": {
"git_url": "https://github.com/openstack/ironic.git",
"git_ref": OS_RELEASE
}
}
CCP_CONF = {
'builder': {
'workers': BUILDER_WORKERS,
'push': True
},
'registry': {
'address': REGISTRY
},
'kubernetes': {
'namespace': 'ccp'
},
'images': {
'namespace': IMAGES_NAMESPACE,
'tag': IMAGES_TAG
}
}
CCP_SOURCES_CONFIG = '~/.ccp.build-sources.yaml'
CCP_FETCH_CONFIG = '~/.ccp.fetch.yaml'
CCP_FETCH_PARAMS = {
'repositories': {
'skip_empty': True
}
}
CCP_BUILD_SOURCES = {
'sources': OS_REPOS
}
CCP_CLI_PARAMS = {
"config-file": "~/.ccp.yaml",
"debug": "",
"log-file": "ccp.log",
}
IFACES = {
"public": os.environ.get("IFACE_PUBLIC", "ens3"),
"private": os.environ.get("IFACE_PRIVATE", "ens4"),
"neutron": os.environ.get("IFACE_NEUTRON", "ens5"),
}
CCP_DEFAULT_GLOBALS = {
"configs": {
"private_interface": IFACES['private'],
"public_interface": IFACES['public'],
"neutron_external_interface": IFACES['neutron']
}
}
CCP_ENVIRONMENT_PARAMS = {
"microservices_home": "$HOME/ccp-repos"
}
NETCHECKER_SERVER_DIR = os.environ.get(
'NETCHECKER_SERVER_DIR', os.path.join(os.getcwd(), 'mcp-netchecker-server')
)
NETCHECKER_AGENT_DIR = os.environ.get(
'NETCHECKER_AGENT_DIR', os.path.join(os.getcwd(), 'mcp-netchecker-agent')
)
MCP_NETCHECKER_AGENT_IMAGE_REPO = os.environ.get(
'MCP_NETCHECKER_AGENT_IMAGE_REPO',
'quay.io/l23network/mcp-netchecker-agent')
MCP_NETCHECKER_AGENT_VERSION = os.environ.get(
'MCP_NETCHECKER_AGENT_VERSION', 'latest')
MCP_NETCHECKER_SERVER_IMAGE_REPO = os.environ.get(
'MCP_NETCHECKER_SERVER_IMAGE_REPO',
'quay.io/l23network/mcp-netchecker-server')
MCP_NETCHECKER_SERVER_VERSION = os.environ.get(
'MCP_NETCHECKER_SERVER_VERSION', 'latest')
# Settings for AppController testing
# AC_PATH - path to k8s-AppController repo
AC_PATH = os.environ.get("AC_PATH")
LVM_PLUGIN_DIRNAME = os.environ.get("LVM_PLUGIN_DIRNAME", 'mirantis.com~lvm')
LVM_PLUGIN_DIR = os.path.join(
'/usr/libexec/kubernetes/kubelet-plugins/volume/exec', LVM_PLUGIN_DIRNAME)
LVM_PLUGIN_PATH = os.environ.get("LVM_PLUGIN_PATH", "~/lvm")
LVM_FILENAME = os.path.basename(LVM_PLUGIN_PATH)
PRECOMMIT_SNAPSHOT_NAME = os.environ.get(
'PRECOMMIT_SNAPSHOT_NAME', ext.SNAPSHOT.ccp_deployed)