diff --git a/infra/ocm-chart/deploy-all.sh b/infra/ocm-chart/deploy-all.sh index 3d746d1a901a35aae1f1ca2e70140835e3469f5e..a9582ca5a0f5c79a565371f9ea6d8a14fb7c7a2d 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."