Support reading Kayobe environment name from file

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
(cherry picked from commit 2af2c3a3b5387c577801b165ecd749fe782fddb9)
This commit is contained in:
Pierre Riteau 2021-03-31 14:56:53 +02:00 committed by Mark Goddard
parent f1d98a9394
commit df9ae70899

View File

@ -36,6 +36,23 @@ export KOLLA_SOURCE_PATH=${KOLLA_SOURCE_PATH:-${base_path}/src/kolla-ansible}
# issues with symlinks on Windows hosts. # issues with symlinks on Windows hosts.
export KOLLA_VENV_PATH=~/kolla-venv export KOLLA_VENV_PATH=~/kolla-venv
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 { function usage {
echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]" echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]"
return 1 return 1
@ -44,21 +61,14 @@ function usage {
if [ "$#" -ge 1 ]; then if [ "$#" -ge 1 ]; then
if [ "$1" = "--environment" -a "$#" -eq 2 ]; then if [ "$1" = "--environment" -a "$#" -eq 2 ]; then
kayobe_env="$2" kayobe_env="$2"
# Look for existing Kayobe environments check_and_export_env
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
else else
usage usage
fi fi
return $?
fi
if [[ -f "$KAYOBE_CONFIG_ROOT/.environment" ]]; then
kayobe_env=$(cat "$KAYOBE_CONFIG_ROOT/.environment")
check_and_export_env
fi fi