[DEPLOY] Bug fix for positional arg in deploy.sh
[oom.git] / kubernetes / helm / plugins / deploy / deploy.sh
index 5820e77..f32281d 100755 (executable)
@@ -87,6 +87,20 @@ resolve_deploy_flags() {
   echo "$DEPLOY_FLAGS"
 }
 
+
+check_for_dep() {
+    try=0
+    retries=30
+    until (kubectl get deployment -n $RELEASE | grep -P "\b$1\b") &>/dev/null; do
+        (( ++try > retries )) && exit 1
+        echo "$1 not found. Retry $try/$retries"
+        sleep 5
+    done
+    echo "$1 found. Waiting for pod intialisation"
+    sleep 15
+}
+
+
 deploy() {
   # validate params
   if [ -z "$1" ] || [ -z "$2" ]; then
@@ -99,11 +113,8 @@ deploy() {
   FLAGS=$(echo ${@} | sed 's/^ *[^ ]* *[^ ]* *//')
   CHART_REPO="$(echo "$CHART_URL" | cut -d'/' -f1)"
   CHART_NAME="$(echo "$CHART_URL" | cut -d'/' -f2)"
-  if expr "$HELM_VER" : "v3\..*" ; then
-    CACHE_DIR=~/.local/share/helm/plugins/deploy/cache
-  else
-    CACHE_DIR=~/.helm/plugins/deploy/cache
-  fi
+
+  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
@@ -181,9 +192,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
@@ -220,6 +233,13 @@ deploy() {
   #“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)
+
+  #Deploy the srtimzi-kafka chart in advance. Dependent charts require the entity-operator
+  #for management of the strimzi crds
+  helm upgrade -i "${RELEASE}-strimzi" $CACHE_SUBCHART_DIR/strimzi
+  echo "waiting for ${RELEASE}-strimzi-entity-operator to be deployed"
+  check_for_dep ${RELEASE}-strimzi-entity-operator
+
   for subchart in * ; do
     SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml
 
@@ -257,21 +277,13 @@ deploy() {
       array=($(echo "$ALL_HELM_RELEASES" | grep "${RELEASE}-${subchart}"))
       n=${#array[*]}
       for i in $(seq $(($n-1)) -1 0); do
-        if expr "$HELM_VER" : "v3\..*" ; then
-          helm del "${array[i]}"
-        else
-          helm del "${array[i]}" --purge
-        fi
+        helm del "${array[i]}"
       done
     fi
   done
 
   # report on success/failures of installs/upgrades
-  if expr "$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