
If using separate branches for each environment, it can be useful to read the environment name from a file committed to each branch. Or, if sharing the same branch for all environments, it can be useful to set the default environment to one with lower impact, e.g. dev or staging. If no --environment option is specified and a .environment file exists at the root of the directory, use its content as KAYOBE_ENVIRONMENT. Change-Id: I22b2b466e47a3b4d96931d754a4de7544f0ada5d
72 lines
2.2 KiB
Plaintext
72 lines
2.2 KiB
Plaintext
# Copyright (c) 2017 StackHPC Ltd.
|
|
#
|
|
# 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.
|
|
|
|
KAYOBE_CONFIG_ROOT=$(dirname $(realpath ${BASH_SOURCE[0]:-${(%):-%x}}))
|
|
echo "Using Kayobe config from $KAYOBE_CONFIG_ROOT"
|
|
|
|
export KAYOBE_CONFIG_PATH=$KAYOBE_CONFIG_ROOT/etc/kayobe
|
|
export KOLLA_CONFIG_PATH=$KAYOBE_CONFIG_ROOT/etc/kolla
|
|
|
|
# NOTE: These paths can be modified depending on the local environment.
|
|
# These defaults are set based on the following directory structure:
|
|
#
|
|
# ${base_path}/
|
|
# src/
|
|
# kayobe/
|
|
# kayobe-config/
|
|
# kolla-ansible/
|
|
# venvs/
|
|
# kayobe/
|
|
# kolla-ansible/
|
|
base_path=$(realpath $KAYOBE_CONFIG_ROOT/../../)
|
|
export KOLLA_SOURCE_PATH=${KOLLA_SOURCE_PATH:-${base_path}/src/kolla-ansible}
|
|
export KOLLA_VENV_PATH=${KOLLA_VENV_PATH:-${base_path}/venvs/kolla-ansible}
|
|
|
|
function check_and_export_env {
|
|
# Look for existing Kayobe environments
|
|
if [ -d "${KAYOBE_CONFIG_PATH}/environments" ]; then
|
|
if [ -d "${KAYOBE_CONFIG_PATH}/environments/${kayobe_env}" ]; then
|
|
export KAYOBE_ENVIRONMENT="${kayobe_env}"
|
|
echo "Using Kayobe environment ${KAYOBE_ENVIRONMENT}"
|
|
return 0
|
|
else
|
|
echo "Unable to find Kayobe environment ${kayobe_env} in ${KAYOBE_CONFIG_PATH}/environments"
|
|
return 1
|
|
fi
|
|
else
|
|
echo "Cannot find environments folder in ${KAYOBE_CONFIG_PATH}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
function usage {
|
|
echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]"
|
|
return 1
|
|
}
|
|
|
|
if [ "$#" -ge 1 ]; then
|
|
if [ "$1" = "--environment" -a "$#" -eq 2 ]; then
|
|
kayobe_env="$2"
|
|
check_and_export_env
|
|
else
|
|
usage
|
|
fi
|
|
return $?
|
|
fi
|
|
|
|
if [[ -f "$KAYOBE_CONFIG_ROOT/.environment" ]]; then
|
|
kayobe_env=$(cat "$KAYOBE_CONFIG_ROOT/.environment")
|
|
check_and_export_env
|
|
fi
|