From 0526ae4e3b3b81b0af1bee0b9b4c279c2bbadc9a Mon Sep 17 00:00:00 2001 From: Vaibhav Pathak Date: Mon, 19 Jan 2026 15:46:54 +0530 Subject: [PATCH] mysql DB wait logic changed --- .../workflow-template.yaml | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/environment-provisioner/workflow-template.yaml b/environment-provisioner/workflow-template.yaml index e8987c6..31e5aa9 100644 --- a/environment-provisioner/workflow-template.yaml +++ b/environment-provisioner/workflow-template.yaml @@ -637,16 +637,35 @@ spec: # kubectl is already available in this image - # Find the Hades MySQL pod - MYSQL_POD=$(kubectl get pods -n "$NAMESPACE" -l "app.kubernetes.io/name=mysql" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + # Wait for pods to be created by ArgoCD (may take time to sync) + echo "Waiting for Hades MySQL pod to be created..." + MYSQL_POD="" + POD_WAIT=0 + POD_MAX_WAIT=180 + + while [ -z "$MYSQL_POD" ] && [ $POD_WAIT -lt $POD_MAX_WAIT ]; do + # Try label used by WSO2 MySQL chart (hades uses this) + MYSQL_POD=$(kubectl get pods -n "$NAMESPACE" -l "app=hades-mysql-db-service" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + + if [ -z "$MYSQL_POD" ]; then + # Try Bitnami MySQL chart label + MYSQL_POD=$(kubectl get pods -n "$NAMESPACE" -l "app.kubernetes.io/name=mysql" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + fi + + if [ -z "$MYSQL_POD" ]; then + # Fallback: grep for hades mysql in pod names + MYSQL_POD=$(kubectl get pods -n "$NAMESPACE" -o name 2>/dev/null | grep -i "hades.*mysql" | head -1 | sed 's/pod\///') + fi + + if [ -z "$MYSQL_POD" ]; then + echo " Waiting for MySQL pod... (${POD_WAIT}s)" + sleep 10 + POD_WAIT=$((POD_WAIT + 10)) + fi + done if [ -z "$MYSQL_POD" ]; then - # Try alternative label - MYSQL_POD=$(kubectl get pods -n "$NAMESPACE" -o name 2>/dev/null | grep -i "mysql" | head -1 | sed 's/pod\///') - fi - - if [ -z "$MYSQL_POD" ]; then - echo "Warning: Could not find Hades MySQL pod" + echo "Warning: Could not find Hades MySQL pod after ${POD_MAX_WAIT}s" echo "Skipping IP registration - Hades may not be deployed" exit 0 fi