diff --git a/tools/deployment/common/get-values-overrides.sh b/tools/deployment/common/get-values-overrides.sh index 377fc6b74..7c1d35979 100755 --- a/tools/deployment/common/get-values-overrides.sh +++ b/tools/deployment/common/get-values-overrides.sh @@ -1,27 +1,32 @@ #!/bin/bash -# -# 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 -# + +# 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. + +# 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. + +# This script will generate a matrix of values-override file args to apply to +# charts, in the gate and development environments. It will 1st produce a +# consistenly ordered list of all permuations of filenames to try, and then +# if a file matching this name exists in the `values_overrides` directory within +# each chart, apply it upon install/upgrade. set -e - HELM_CHART="$1" - +SUBCHART="$2" : "${HELM_CHART_ROOT_PATH:="../openstack-helm-infra"}" -: "${OPENSTACK_RELEASE:="2023.1"}" +: "${OPENSTACK_RELEASE:="2023.2"}" : "${CONTAINER_DISTRO_NAME:="ubuntu"}" -: "${CONTAINER_DISTRO_VERSION:="focal"}" -: "${FEATURE_GATES:="apparmor"}" -OSH_INFRA_FEATURE_MIX="${FEATURE_GATES},${OPENSTACK_RELEASE},${CONTAINER_DISTRO_NAME}_${CONTAINER_DISTRO_VERSION},${CONTAINER_DISTRO_NAME}" +: "${CONTAINER_DISTRO_VERSION:="jammy"}" +: "${FEATURE_GATES:=""}" +FEATURE_MIX="${FEATURE_GATES},${OPENSTACK_RELEASE},${CONTAINER_DISTRO_NAME}_${CONTAINER_DISTRO_VERSION},${CONTAINER_DISTRO_NAME}" function echoerr () { echo "$@" 1>&2; @@ -48,19 +53,42 @@ function combination () { done } -function override_file_args () { - OVERRIDE_ARGS="" - echoerr "We will attempt to use values-override files with the following paths:" - for FILE in $(combination ${1//,/ } | uniq | tac); do - FILE_PATH="${HELM_CHART_ROOT_PATH}/${HELM_CHART}/values_overrides/${FILE}.yaml" - if [ -f "${FILE_PATH}" ]; then - OVERRIDE_ARGS+=" --values=${FILE_PATH} " - fi - echoerr "${FILE_PATH}" +function replace_variables() { + for key in $(env); do + local arr=( $(echo $key | awk -F'=' '{ print $1, $2 }') ) + sed -i "s#%%%REPLACE_${arr[0]}%%%#${arr[1]}#g" $@ done - echo "${OVERRIDE_ARGS}" } -echoerr "We are going to deploy the service ${HELM_CHART} using ${CONTAINER_DISTRO_NAME} (${CONTAINER_DISTRO_VERSION}) distribution containers." -source ${HELM_CHART_ROOT_PATH}/tools/deployment/common/env-variables.sh -override_file_args "${OSH_INFRA_FEATURE_MIX}" +function override_file_args () { + OVERRIDE_ARGS="" + if [ -z "$SUBCHART" ];then + echoerr "We will attempt to use values-override files with the following paths:" + for FILE in $(combination ${1//,/ } | uniq | tac); do + FILE_PATH="${HELM_CHART_ROOT_PATH}/${HELM_CHART}/values_overrides/${FILE}.yaml" + if [ -f "${FILE_PATH}" ]; then + replace_variables ${FILE_PATH} + OVERRIDE_ARGS+=" --values=${FILE_PATH} " + fi + echoerr "${FILE_PATH}" + done + else + echoerr "running as subchart" + echoerr "We will attempt to use values-override files with the following paths:" + for FILE in $(combination ${1//,/ } | uniq | tac); do + FILE_PATH="${HELM_CHART_ROOT_PATH}/values_overrides/${HELM_CHART}/${FILE}.yaml" + if [ -f "${FILE_PATH}" ]; then + replace_variables ${FILE_PATH} + OVERRIDE_ARGS+=" --values=${FILE_PATH} " + fi + echoerr "${FILE_PATH}" + done + fi + + echo "${OVERRIDE_ARGS}" +} + + +echoerr "We are going to deploy the service ${HELM_CHART} for the OpenStack ${OPENSTACK_RELEASE} release, using ${CONTAINER_DISTRO_NAME} (${CONTAINER_DISTRO_VERSION}) distribution containers." +source ./tools/deployment/common/env-variables.sh +override_file_args "${FEATURE_MIX}"