Increase helm deploy perf by reducing helm ls 12/89712/1
authorJoey Sullivan <joey.sullivan@amdocs.com>
Tue, 11 Jun 2019 14:38:51 +0000 (10:38 -0400)
committerJoey Sullivan <joey.sullivan@amdocs.com>
Tue, 11 Jun 2019 15:23:49 +0000 (11:23 -0400)
Helm ls takes a lot of time to execute.   This
code change makes sure it only executes once per
helm deploy instead of once per helm release.

Issue-ID: OOM-1923
Signed-off-by: Joey Sullivan <joey.sullivan@amdocs.com>
Change-Id: I6337c97380d9f583b33f55a2be1d41ac7ce350c8

kubernetes/helm/plugins/deploy/deploy.sh

index 2bbae80..3416a02 100755 (executable)
@@ -206,6 +206,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
 
@@ -236,7 +239,7 @@ deploy() {
         fi
       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