From 7ebf25909799af9f5962d871097f99aecd22b230 Mon Sep 17 00:00:00 2001 From: keshav-06-hpe Date: Mon, 19 Aug 2024 12:05:58 +0530 Subject: [PATCH] Resolving code repeatition --- upgrade/scripts/upgrade/rollout-restart.sh | 40 ++++++++++------------ 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/upgrade/scripts/upgrade/rollout-restart.sh b/upgrade/scripts/upgrade/rollout-restart.sh index 508a200816de..643c723e641b 100755 --- a/upgrade/scripts/upgrade/rollout-restart.sh +++ b/upgrade/scripts/upgrade/rollout-restart.sh @@ -148,24 +148,31 @@ restart_and_check_status() { shift local resources=("$@") - for resource in "${resources[@]}"; do - resource_type=$(echo "$resource" | cut -d'/' -f1) - resource_name=$(echo "$resource" | cut -d'/' -f2) - + resolve_deployment() { + local resource_type=$1 + local resource_name=$2 if [[ $resource_type == "ReplicaSet" ]]; then - # Find the corresponding Deployment deployment=$(kubectl get replicasets "$resource_name" -n "$namespace" -o jsonpath="{.metadata.ownerReferences[0].name}") if [[ -n $deployment ]]; then resource_type="Deployment" resource_name=$deployment else echo "No corresponding Deployment found for ReplicaSet $resource_name" - continue + return 1 fi fi + echo "$resource_type/$resource_name" + } - echo "Rolling out restart for $resource_type/$resource_name in namespace: $namespace" - kubectl rollout restart "$resource_type"/"$resource_name" -n "$namespace" + for resource in "${resources[@]}"; do + resource_type=$(echo "$resource" | cut -d'/' -f1) + resource_name=$(echo "$resource" | cut -d'/' -f2) + + resolved_resource=$(resolve_deployment "$resource_type" "$resource_name") + if [[ $? -eq 0 ]]; then + echo "Rolling out restart for $resolved_resource in namespace: $namespace" + kubectl rollout restart "$resolved_resource" -n "$namespace" + fi done echo "Waiting for 3 minutes..." @@ -175,20 +182,11 @@ restart_and_check_status() { resource_type=$(echo "$resource" | cut -d'/' -f1) resource_name=$(echo "$resource" | cut -d'/' -f2) - if [[ $resource_type == "ReplicaSet" ]]; then - # Find the corresponding Deployment - deployment=$(kubectl get replicasets "$resource_name" -n "$namespace" -o jsonpath="{.metadata.ownerReferences[0].name}") - if [[ -n $deployment ]]; then - resource_type="Deployment" - resource_name=$deployment - else - echo "No corresponding Deployment found for ReplicaSet $resource_name" - continue - fi + resolved_resource=$(resolve_deployment "$resource_type" "$resource_name") + if [[ $? -eq 0 ]]; then + echo "Checking rollout status for $resolved_resource in namespace: $namespace" + kubectl rollout status "$resolved_resource" -n "$namespace" fi - - echo "Checking rollout status for $resource_type/$resource_name in namespace: $namespace" - kubectl rollout status "$resource_type"/"$resource_name" -n "$namespace" done }