From a73352784754a58bcc1109f21587e0be3e2a91c1 Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Mon, 23 Sep 2024 13:34:06 +0200 Subject: [PATCH 1/5] Kayobe multiple environments support Adds a mandatory parameter - kayobe environment name, allowing for separate configs per env in the same branch. --- tools/openstack-config | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/tools/openstack-config b/tools/openstack-config index 055a62c..d149738 100755 --- a/tools/openstack-config +++ b/tools/openstack-config @@ -4,30 +4,38 @@ SCRIPT=${BASH_SOURCE[0]} TOOLS_PATH=$(dirname ${SCRIPT}) OPENSTACK_CONFIG_PATH=$(dirname ${TOOLS_PATH}) cd ${OPENSTACK_CONFIG_PATH} +MANDATORY_PARAM=false PLAYBOOK=ansible/openstack.yml -while getopts ":p:" opt; do +while getopts ":p:e:" opt; do case $opt in p) PLAYBOOK=${OPTARG} ;; + + e) + MANDATORY_PARAM=true; + ENV="-${OPTARG}" + ;; \?) - echo "Invalid option: -$opt" - echo "Usage: ${0} [-p ] [-- ]" + echo "Invalid option: -$OPTARG" + echo "Usage: ${0} [-p ] [-e ] [-- ]" exit 1 ;; esac - if [[ -n ${OPTARG} ]]; then - shift - fi - shift done -if [[ $1 == '--' ]]; then - shift +# Fail as mandatory environment paremeter is missing +if ! $MANDATORY_PARAM +then + echo "-e missing - environment parameter is mandatory" >&2 + exit 1 fi +# Removing parameters already parsed with getopts +shift $(( OPTIND - 1 )) + echo "Running playbook $PLAYBOOK" exec ansible-playbook \ From e5eaf874fea97c0d37d7ff525f9a88e43a5a5a56 Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Wed, 11 Mar 2026 14:28:28 +0100 Subject: [PATCH 2/5] Add missing env name to playbook line --- tools/openstack-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/openstack-config b/tools/openstack-config index d149738..8ff40fe 100755 --- a/tools/openstack-config +++ b/tools/openstack-config @@ -41,5 +41,5 @@ echo "Running playbook $PLAYBOOK" exec ansible-playbook \ ${PLAYBOOK} \ -i ansible/inventory \ - -e @etc/openstack-config/openstack-config.yml \ + -e @etc/openstack-config/openstack-config${ENV}.yml \ $@ From e70cf4387341ad64a2c4c821daa275ab7f0d9509 Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Wed, 11 Mar 2026 15:44:16 +0100 Subject: [PATCH 3/5] Make environment parameter optional --- tools/openstack-config | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tools/openstack-config b/tools/openstack-config index 8ff40fe..3b0f2f8 100755 --- a/tools/openstack-config +++ b/tools/openstack-config @@ -4,7 +4,6 @@ SCRIPT=${BASH_SOURCE[0]} TOOLS_PATH=$(dirname ${SCRIPT}) OPENSTACK_CONFIG_PATH=$(dirname ${TOOLS_PATH}) cd ${OPENSTACK_CONFIG_PATH} -MANDATORY_PARAM=false PLAYBOOK=ansible/openstack.yml @@ -15,7 +14,6 @@ while getopts ":p:e:" opt; do ;; e) - MANDATORY_PARAM=true; ENV="-${OPTARG}" ;; \?) @@ -26,13 +24,6 @@ while getopts ":p:e:" opt; do esac done -# Fail as mandatory environment paremeter is missing -if ! $MANDATORY_PARAM -then - echo "-e missing - environment parameter is mandatory" >&2 - exit 1 -fi - # Removing parameters already parsed with getopts shift $(( OPTIND - 1 )) From a7895567c4b2cf4d69937011b7259c4ff4690aa6 Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Thu, 12 Mar 2026 09:37:39 +0100 Subject: [PATCH 4/5] Readme update --- README.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.rst b/README.rst index a520786..259698c 100644 --- a/README.rst +++ b/README.rst @@ -57,6 +57,12 @@ To configure OpenStack infrastructure: $ tools/openstack-config +Optionally provide environment name if using multiple environments: + +.. code-block:: + + $ tools/openstack-config -e + To run a specific playbook: .. code-block:: From ed75ddd022c6491d97066196fb3e60d18ec4ec4b Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Thu, 12 Mar 2026 12:42:14 +0100 Subject: [PATCH 5/5] Update README with multiple environments support Clarify instructions for using multiple environments with Kayobe. --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 259698c..e5be5e3 100644 --- a/README.rst +++ b/README.rst @@ -57,10 +57,11 @@ To configure OpenStack infrastructure: $ tools/openstack-config -Optionally provide environment name if using multiple environments: +Support for Kayobe multiple environments is provided using environment name switch and appending '-environment_name' to the config file: .. code-block:: + $ ls ./etc/openstack-config/openstack-config-.yml $ tools/openstack-config -e To run a specific playbook: