X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=kubernetes%2Fhelm%2Fplugins%2Fdeploy%2Fdeploy.sh;h=40338b94853119ff93558170007394d39b15aff0;hb=b1ee058f941a9c9ff27467054d98b8a56c988797;hp=a07c7f4ce155f8ea7babf20fe66d722405990c90;hpb=609ea28886b7aefa77cc6fca064fc363fcaa71a5;p=oom.git diff --git a/kubernetes/helm/plugins/deploy/deploy.sh b/kubernetes/helm/plugins/deploy/deploy.sh index a07c7f4ce1..40338b9485 100755 --- a/kubernetes/helm/plugins/deploy/deploy.sh +++ b/kubernetes/helm/plugins/deploy/deploy.sh @@ -52,7 +52,7 @@ generate_overrides() { if [[ $START == "global:" ]]; then echo "global:" > $GLOBAL_OVERRIDES cat $COMPUTED_OVERRIDES | sed '/common:/,/consul:/d' \ - | sed -n '/'"$START"'/,/'log:'/p' | sed '1d;$d' >> $GLOBAL_OVERRIDES + | sed -n '/^'"$START"'/,/'log:'/p' | sed '1d;$d' >> $GLOBAL_OVERRIDES else SUBCHART_DIR="$CACHE_SUBCHART_DIR/$(cut -d':' -f1 <<<"$START")" if [[ -d "$SUBCHART_DIR" ]]; then @@ -98,7 +98,12 @@ deploy() { FLAGS=${@:3} CHART_REPO="$(cut -d'/' -f1 <<<"$CHART_URL")" CHART_NAME="$(cut -d'/' -f2 <<<"$CHART_URL")" - CACHE_DIR=~/.helm/plugins/deploy/cache + if [[ $HELM_VER == "v3."* ]]; then + CACHE_DIR=~/.local/share/helm/plugins/deploy/cache + else + CACHE_DIR=~/.helm/plugins/deploy/cache + fi + echo "Use cache dir: $CACHE_DIR" CHART_DIR=$CACHE_DIR/$CHART_NAME CACHE_SUBCHART_DIR=$CHART_DIR-subcharts LOG_DIR=$CHART_DIR/logs @@ -109,6 +114,12 @@ deploy() { FLAGS="$(echo $FLAGS| sed -n 's/--verbose//p')" VERBOSE="true" fi + # determine if delay for deployment is enabled + DELAY="false" + if [[ $FLAGS = *"--delay"* ]]; then + FLAGS="$(echo $FLAGS| sed -n 's/--delay//p')" + DELAY="true" + fi # determine if set-last-applied flag is enabled SET_LAST_APPLIED="false" if [[ $FLAGS = *"--set-last-applied"* ]]; then @@ -134,21 +145,17 @@ deploy() { # 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 + # update specified subchart without parent + RELEASE="$(cut -d'-' -f1 <<<"$RELEASE")" + if [[ $SUBCHART_RELEASE == $RELEASE ]]; then SUBCHART_RELEASE= - else - # update specified subchart without parent - RELEASE="$(cut -d'-' -f1 <<<"$RELEASE")" fi # clear previously cached charts rm -rf $CACHE_DIR - # create log driectory - mkdir -p $LOG_DIR - # fetch umbrella chart (parent chart containing subcharts) if [[ -d "$CHART_URL" ]]; then mkdir -p $CHART_DIR @@ -164,6 +171,9 @@ deploy() { helm fetch $CHART_URL --untar --untardir $CACHE_DIR $VERSION fi + # create log driectory + mkdir -p $LOG_DIR + # move out subcharts to process separately mkdir -p $CACHE_SUBCHART_DIR mv $CHART_DIR/charts/* $CACHE_SUBCHART_DIR/ @@ -206,6 +216,9 @@ deploy() { # upgrade/install each "enabled" subchart cd $CACHE_SUBCHART_DIR/ + #“helm ls” is an expensive command in that it can take a long time to execute. + #So cache the results to prevent repeated execution. + ALL_HELM_RELEASES=$(helm ls -q) for subchart in * ; do SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml @@ -235,11 +248,19 @@ deploy() { > $LOG_FILE.log 2>&1 fi fi + if [[ $DELAY == "true" ]]; then + echo sleep 3m + sleep 3m + fi else - array=($(helm ls -q | grep "${RELEASE}-${subchart}")) + array=($(echo "$ALL_HELM_RELEASES" | grep "${RELEASE}-${subchart}")) n=${#array[*]} for (( i = n-1; i >= 0; i-- )); do - helm del "${array[i]}" --purge + if [[ $HELM_VER == "v3."* ]]; then + helm del "${array[i]}" + else + helm del "${array[i]}" --purge + fi done fi done @@ -247,6 +268,8 @@ deploy() { # report on success/failures of installs/upgrades helm ls | grep FAILED | grep $RELEASE } +HELM_VER=$(helm version --template "{{.Version}}") +echo $HELM_VER case "${1:-"help"}" in "help")