-
Notifications
You must be signed in to change notification settings - Fork 7
/
kayobe-env
74 lines (67 loc) · 2.29 KB
/
kayobe-env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 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