diff options
Diffstat (limited to 'kubernetes/helm/plugins/deploy/deploy.sh')
-rwxr-xr-x | kubernetes/helm/plugins/deploy/deploy.sh | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/kubernetes/helm/plugins/deploy/deploy.sh b/kubernetes/helm/plugins/deploy/deploy.sh index 9195f161f6..a07c7f4ce1 100755 --- a/kubernetes/helm/plugins/deploy/deploy.sh +++ b/kubernetes/helm/plugins/deploy/deploy.sh @@ -39,6 +39,7 @@ Flags: --set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) -f, --values valueFiles specify values in a YAML file or a URL(can specify multiple) (default []) --verbose enables full helm install/upgrade output during deploy + --set-last-applied set the last-applied-configuration annotation on all objects.This annotation is required to restore services using Ark/Veloro backup restore. EOF } @@ -66,7 +67,6 @@ generate_overrides() { fi done } - resolve_deploy_flags() { flags=($1) n=${#flags[*]} @@ -75,7 +75,8 @@ resolve_deploy_flags() { if [[ $PARAM == "-f" || \ $PARAM == "--values" || \ $PARAM == "--set" || \ - $PARAM == "--set-string" ]]; then + $PARAM == "--set-string" || \ + $PARAM == "--version" ]]; then # skip param and its value i=$((i + 1)) else @@ -108,6 +109,12 @@ deploy() { FLAGS="$(echo $FLAGS| sed -n 's/--verbose//p')" VERBOSE="true" fi + # determine if set-last-applied flag is enabled + SET_LAST_APPLIED="false" + if [[ $FLAGS = *"--set-last-applied"* ]]; then + FLAGS="$(echo $FLAGS| sed -n 's/--set-last-applied//p')" + SET_LAST_APPLIED="true" + fi if [[ $FLAGS = *"--dry-run"* ]]; then VERBOSE="true" FLAGS="$FLAGS --debug" @@ -116,12 +123,18 @@ deploy() { # should pass all flags instead NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10- | cut -d' ' -f1)" + VERSION="$(echo $FLAGS | sed -n 's/.*\(version\).\s*/\1/p' | cut -c8- | cut -d' ' -f1)" + + if [ ! -z $VERSION ]; then + VERSION="--version $VERSION" + fi + # Remove all override values passed in as arguments. These will be used during dry run # to resolve computed override values. Remaining flags will be passed on during # actual upgrade/install of parent and subcharts. DEPLOY_FLAGS=$(resolve_deploy_flags "$FLAGS") - # determine if upgrading individual subchart or entire parent + subcharts + # determine if upgrading individual subchart or entire parent + subcharts SUBCHART_RELEASE="$(cut -d'-' -f2 <<<"$RELEASE")" if [[ ! -d "$CACHE_SUBCHART_DIR/$SUBCHART_RELEASE" ]]; then SUBCHART_RELEASE= @@ -148,7 +161,7 @@ deploy() { rm -rf $CHART_DIR/charts/*.tgz else echo "fetching $CHART_URL" - helm fetch $CHART_URL --untar --untardir $CACHE_DIR + helm fetch $CHART_URL --untar --untardir $CACHE_DIR $VERSION fi # move out subcharts to process separately @@ -183,6 +196,12 @@ deploy() { else echo "release \"$RELEASE\" deployed" fi + # Add annotation last-applied-configuration if set-last-applied flag is set + if [[ $SET_LAST_APPLIED == "true" ]]; then + helm get manifest ${RELEASE} \ + | kubectl apply set-last-applied --create-annotation -n onap -f - \ + > $LOG_FILE.log 2>&1 + fi fi # upgrade/install each "enabled" subchart @@ -209,6 +228,12 @@ deploy() { else echo "release \"${RELEASE}-${subchart}\" deployed" fi + # Add annotation last-applied-configuration if set-last-applied flag is set + if [[ $SET_LAST_APPLIED == "true" ]]; then + helm get manifest "${RELEASE}-${subchart}" \ + | kubectl apply set-last-applied --create-annotation -n onap -f - \ + > $LOG_FILE.log 2>&1 + fi fi else array=($(helm ls -q | grep "${RELEASE}-${subchart}")) @@ -238,4 +263,4 @@ case "${1:-"help"}" in ;; esac -exit 0
\ No newline at end of file +exit 0 |