kayobe-config-dev/kayobe-env
Pierre Riteau df9ae70899 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)
2021-08-10 09:56:10 +01:00

75 lines
2.3 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]}))
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}
# Path to the kolla virtual environment.
# NOTE: This should not be in the Vagrant shared directory, as there are
# issues with symlinks on Windows hosts.
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 {
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