X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=kubernetes%2Fhelm%2Fplugins%2Fdeploy%2Fdeploy.sh;h=13b0ed86e2cc98e4c755f16a410718df79046b7e;hb=370c6dc33e55bfee7b3b79bcc21481b02a3f1e24;hp=3bcb404032847a959d9b72d845cf9d2a8ebb8303;hpb=f46b67ceca21bfd573ec924494b8b9651430f06e;p=oom.git diff --git a/kubernetes/helm/plugins/deploy/deploy.sh b/kubernetes/helm/plugins/deploy/deploy.sh index 3bcb404032..13b0ed86e2 100755 --- a/kubernetes/helm/plugins/deploy/deploy.sh +++ b/kubernetes/helm/plugins/deploy/deploy.sh @@ -2,7 +2,7 @@ usage() { cat << EOF -Install (or upgrade) an umbrella Helm Chart, and its subcharts, as separate Helm Releases +Install (or upgrade) an umbrella Helm Chart, and its subcharts, as separate Helm Releases The umbrella Helm Chart is broken apart into a parent release and subchart releases. Subcharts the are disabled (.enabled=false) will not be installed or upgraded. @@ -22,13 +22,13 @@ You can specify the '--values'/'-f' flag multiple times. The priority will be gi last (right-most) file specified. For example, if both myvalues.yaml and override.yaml contained a key called 'Test', the value set in override.yaml would take precedence: - $ helm deploy demo ./onap --namespace onap -f openstack.yaml -f overrides.yaml + $ helm deploy demo ./onap --namespace onap -f openstack.yaml -f overrides.yaml You can specify the '--set' flag multiple times. The priority will be given to the last (right-most) set specified. For example, if both 'bar' and 'newbar' values are set for a key called 'foo', the 'newbar' value would take precedence: - $ helm deploy demo local/onap --namespace onap -f overrides.yaml --set log.enabled=false --set vid.enabled=false + $ helm deploy demo local/onap --namespace onap -f overrides.yaml --set log.enabled=false --set vid.enabled=false Usage: helm deploy [RELEASE] [CHART] [flags] @@ -49,14 +49,14 @@ generate_overrides() { for index in "${!SUBCHART_NAMES[@]}"; do START=${SUBCHART_NAMES[index]} END=${SUBCHART_NAMES[index+1]} - if [[ $START == "global:" ]]; then + 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 else - SUBCHART_DIR="$CACHE_SUBCHART_DIR/$(cut -d':' -f1 <<<"$START")" - if [[ -d "$SUBCHART_DIR" ]]; then - if [[ -z "$END" ]]; then + SUBCHART_DIR="$CACHE_SUBCHART_DIR/$(echo "$START" |cut -d':' -f1)" + if [ -d "$SUBCHART_DIR" ]; then + if [ -z "$END" ]; then cat $COMPUTED_OVERRIDES | sed -n '/^'"$START"'/,/'"$END"'/p' \ | sed '1d;$d' | cut -c3- > $SUBCHART_DIR/subchart-overrides.yaml else @@ -70,39 +70,37 @@ generate_overrides() { resolve_deploy_flags() { flags=($1) n=${#flags[*]} - for (( i = 0; i < n; i++ )); do + i=0 ; while [ "$i" -lt "$n" ]; do PARAM=${flags[i]} - if [[ $PARAM == "-f" || \ - $PARAM == "--values" || \ - $PARAM == "--set" || \ - $PARAM == "--set-string" || \ - $PARAM == "--version" ]]; then + if [ "$PARAM" = "-f" ] || \ + [ "$PARAM" = "--values" ] || \ + [ "$PARAM" = "--set" ] || \ + [ "$PARAM" = "--set-string" ] || \ + [ "$PARAM" = "--version" ]; then # skip param and its value i=$((i + 1)) else DEPLOY_FLAGS="$DEPLOY_FLAGS $PARAM" fi + i=$((i+1)) done echo "$DEPLOY_FLAGS" } deploy() { # validate params - if [[ -z "$1" || -z "$2" ]]; then + if [ -z "$1" ] || [ -z "$2" ]; then usage - exit 0 + exit 1 fi RELEASE=$1 CHART_URL=$2 - FLAGS=${@:3} - CHART_REPO="$(cut -d'/' -f1 <<<"$CHART_URL")" - CHART_NAME="$(cut -d'/' -f2 <<<"$CHART_URL")" - if [[ $HELM_VER == "v3."* ]]; then - CACHE_DIR=~/.local/share/helm/plugins/deploy/cache - else - CACHE_DIR=~/.helm/plugins/deploy/cache - fi + FLAGS=$(echo ${@} | sed 's/^ *[^ ]* *[^ ]* *//') + CHART_REPO="$(echo "$CHART_URL" | cut -d'/' -f1)" + CHART_NAME="$(echo "$CHART_URL" | cut -d'/' -f2)" + + CACHE_DIR=~/.local/share/helm/plugins/deploy/cache echo "Use cache dir: $CACHE_DIR" CHART_DIR=$CACHE_DIR/$CHART_NAME CACHE_SUBCHART_DIR=$CHART_DIR-subcharts @@ -110,23 +108,23 @@ deploy() { # determine if verbose output is enabled VERBOSE="false" - if [[ $FLAGS = *"--verbose"* ]]; then + if expr "$FLAGS" : ".*--verbose.*" ; then FLAGS="$(echo $FLAGS| sed -n 's/--verbose//p')" VERBOSE="true" fi # determine if delay for deployment is enabled DELAY="false" - if [[ $FLAGS = *"--delay"* ]]; then + if expr "$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 + if expr "$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 + if expr "$FLAGS" : ".*--dry-run.*" ; then VERBOSE="true" FLAGS="$FLAGS --debug" fi @@ -146,10 +144,10 @@ deploy() { DEPLOY_FLAGS=$(resolve_deploy_flags "$FLAGS") # determine if upgrading individual subchart or entire parent + subcharts - SUBCHART_RELEASE="$(cut -d'-' -f2 <<<"$RELEASE")" + SUBCHART_RELEASE="$(echo "$RELEASE" |cut -d'-' -f2)" # update specified subchart without parent - RELEASE="$(cut -d'-' -f1 <<<"$RELEASE")" - if [[ $SUBCHART_RELEASE == $RELEASE ]]; then + RELEASE="$(echo "$RELEASE" |cut -d'-' -f1)" + if [ "$SUBCHART_RELEASE" = "$RELEASE" ]; then SUBCHART_RELEASE= fi @@ -157,7 +155,7 @@ deploy() { rm -rf $CACHE_DIR # fetch umbrella chart (parent chart containing subcharts) - if [[ -d "$CHART_URL" ]]; then + if [ -d "$CHART_URL" ]; then mkdir -p $CHART_DIR cp -R $CHART_URL/* $CHART_DIR/ @@ -180,9 +178,11 @@ deploy() { # temp hack - parent chart needs common subchart mv $CACHE_SUBCHART_DIR/common $CHART_DIR/charts/ - # disable dependencies - rm $CHART_DIR/requirements.lock - mv $CHART_DIR/requirements.yaml $CHART_DIR/requirements.deploy + # disable dependencies + rm $CHART_DIR/Chart.lock + sed -n '1,/dependencies:/p;/description:/,$p' $CHART_DIR/Chart.yaml | grep -v dependencies > $CHART_DIR/deploy_Chart.yaml + mv $CHART_DIR/Chart.yaml $CHART_DIR/Chart.deploy + mv $CHART_DIR/deploy_Chart.yaml $CHART_DIR/Chart.yaml # compute overrides for parent and all subcharts COMPUTED_OVERRIDES=$CACHE_DIR/$CHART_NAME/computed-overrides.yaml @@ -194,20 +194,20 @@ deploy() { generate_overrides $COMPUTED_OVERRIDES $GLOBAL_OVERRIDES # upgrade/install parent chart first - if [[ -z "$SUBCHART_RELEASE" ]]; then + if [ -z "$SUBCHART_RELEASE" ]; then LOG_FILE=$LOG_DIR/${RELEASE}.log :> $LOG_FILE helm upgrade -i $RELEASE $CHART_DIR $DEPLOY_FLAGS -f $COMPUTED_OVERRIDES \ > $LOG_FILE.log 2>&1 - if [[ $VERBOSE == "true" ]]; then + if [ "$VERBOSE" = "true" ]; then cat $LOG_FILE else echo "release \"$RELEASE\" deployed" fi # Add annotation last-applied-configuration if set-last-applied flag is set - if [[ $SET_LAST_APPLIED == "true" ]]; then + 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 @@ -223,12 +223,12 @@ deploy() { SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml SUBCHART_ENABLED=0 - if [[ -f $SUBCHART_OVERRIDES ]]; then + if [ -f $SUBCHART_OVERRIDES ]; then SUBCHART_ENABLED=$(cat $SUBCHART_OVERRIDES | grep -c "^enabled: true") fi - if [[ $SUBCHART_ENABLED -eq 1 ]]; then - if [[ -z "$SUBCHART_RELEASE" || $SUBCHART_RELEASE == "$subchart" ]]; then + if [ $SUBCHART_ENABLED -eq 1 ]; then + if [ -z "$SUBCHART_RELEASE" ] || [ "$SUBCHART_RELEASE" = "$subchart" ]; then LOG_FILE=$LOG_DIR/"${RELEASE}-${subchart}".log :> $LOG_FILE @@ -236,41 +236,33 @@ deploy() { $DEPLOY_FLAGS -f $GLOBAL_OVERRIDES -f $SUBCHART_OVERRIDES \ > $LOG_FILE 2>&1 - if [[ $VERBOSE == "true" ]]; then + if [ "$VERBOSE" = "true" ]; then cat $LOG_FILE 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 + # 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 + > $LOG_FILE.log 2>&1 fi fi - if [[ $DELAY == "true" ]]; then - echo sleep 3m - sleep 3m - fi + if [ "$DELAY" = "true" ]; then + echo sleep 3m + sleep 180 + fi else array=($(echo "$ALL_HELM_RELEASES" | grep "${RELEASE}-${subchart}")) n=${#array[*]} - for (( i = n-1; i >= 0; i-- )); do - if [[ $HELM_VER == "v3."* ]]; then - helm del "${array[i]}" - else - helm del "${array[i]}" --purge - fi + for i in $(seq $(($n-1)) -1 0); do + helm del "${array[i]}" done fi done # report on success/failures of installs/upgrades - if [[ $HELM_VER == "v3."* ]]; then - helm ls --all-namespaces | grep -i FAILED | grep $RELEASE - else - helm ls | grep FAILED | grep $RELEASE - fi + helm ls --all-namespaces | grep -i FAILED | grep $RELEASE } HELM_VER=$(helm version --template "{{.Version}}") echo $HELM_VER @@ -286,7 +278,7 @@ case "${1:-"help"}" in usage ;; *) - deploy $1 $2 ${@:3} + deploy $1 $2 $(echo ${@} | sed 's/^ *[^ ]* *[^ ]* *//') ;; esac