From cdb5a8a690f644c7d2f502b9ed3da38e5f89362c Mon Sep 17 00:00:00 2001
From: Aleksei Lunin <alexey.lunin@vereign.com>
Date: Fri, 3 Nov 2023 03:02:49 +0200
Subject: [PATCH] increase helm speed

---
 infra/ocm-chart/deploy-all.sh | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/infra/ocm-chart/deploy-all.sh b/infra/ocm-chart/deploy-all.sh
index 3d746d1a..a9582ca5 100644
--- a/infra/ocm-chart/deploy-all.sh
+++ b/infra/ocm-chart/deploy-all.sh
@@ -4,26 +4,37 @@
 CHART_PATH="."
 
 # Get a list of all values-*.yaml files in the current directory
-VALUES_FILES=$(ls custom-values/values*.yaml)
+VALUES_FILES=$(ls values*.yaml)
+
+# Max number of parallel jobs
+MAX_JOBS=10
+CURRENT_JOBS=0
 
 # Loop over each values file
 for VALUES_FILE in $VALUES_FILES
 do
-  # Extract the base name without extension
+  # Extract the base name without the 'values-' prefix and '.yaml' extension
   BASE_NAME=$(basename "$VALUES_FILE" .yaml)
+  BASE_NAME="${BASE_NAME#values-}"
 
   # Use the base name as the release name
-  RELEASE_NAME="ocm-$BASE_NAME"
+  RELEASE_NAME="$BASE_NAME"
+
+  # Run helm upgrade --install with the found values file in the background
+  echo "Starting deployment for $RELEASE_NAME with $VALUES_FILE"
+  helm upgrade --install "$RELEASE_NAME" "$CHART_PATH" -f "./$VALUES_FILE" &
 
-  # Run helm install with the found values file
-  echo "Deploying $RELEASE_NAME with $VALUES_FILE"
-  helm install "$RELEASE_NAME" "$CHART_PATH" -f "./$VALUES_FILE"
+  # Increment the current jobs counter
+  ((CURRENT_JOBS++))
 
-  # Check for errors
-  if [ $? -ne 0 ]; then
-    echo "Helm install failed for $VALUES_FILE"
-    exit 1
+  # If the max number of jobs is reached, wait for all jobs to complete before continuing
+  if (( CURRENT_JOBS >= MAX_JOBS )); then
+    wait
+    CURRENT_JOBS=0
   fi
 done
 
-echo "Helm install completed for all values files."
+# Wait for the last batch of jobs to finish
+wait
+
+echo "Helm deployment completed for all values files."
-- 
GitLab