File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed
Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 1313 - ` $AWS_ROLE_ARN ` = ENV variable for Role ARN
1414 - ` $AWS_ROLE_SESSION_NAME ` = ENV variable for session name
1515 - ` $OIDC_TOKEN ` = ENV variable for providing OIDC token
16+ - ` helm-rollback.sh ` - Script for rolling back failed Helm releases
17+ - Checks for pending or failed releases
18+ - Waits up to 15 minutes for pending releases to complete
19+ - If still pending/failed after wait, rolls back to previous version
20+ - Requirements:
21+ - ` $HELM_RELEASE_NAME ` = ENV variable for Helm release name
22+ - ` $KUBE_NAMESPACE ` = ENV variable for Kubernetes namespace
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ export RELEASE=$( echo " ${HELM_RELEASE_NAME: 0: 36} " | sed -E ' s/-+$//' )
4+
5+ FAILED=$( helm list --failed -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | wc -l )
6+ PENDING=$( helm list --pending -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | wc -l)
7+
8+ if [ " $PENDING " -gt 0 ]; then
9+ echo " Pending release found."
10+ helm list --pending -n $KUBE_NAMESPACE
11+ echo " Waiting for 15 minutes ..."
12+ for i in $( seq 1 15) ; do
13+ sleep 60
14+ echo " Still wating for $i minutes"
15+ PENDING=$( helm list --pending -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | wc -l)
16+ if [ " $PENDING " -eq 0 ]; then
17+ break
18+ fi
19+ done
20+ fi
21+
22+ FAILED=$( helm list --failed -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | wc -l )
23+ PENDING=$( helm list --pending -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | wc -l)
24+
25+ if [ " $PENDING " -gt 0 -o " $FAILED " -gt 0 ]; then
26+ echo " Pending or failed release found."
27+ helm list --failed --pending -n $KUBE_NAMESPACE
28+ export LAST=$( helm list --failed --pending -n $KUBE_NAMESPACE | grep ^${RELEASE} \\ s | awk ' {print $3-1}' )
29+ echo " Rolling back to ${LAST} ..."
30+ helm rollback $RELEASE $LAST -n $KUBE_NAMESPACE
31+ else
32+ echo " No pending/failed release, go ahead."
33+ fi
You can’t perform that action at this time.
0 commit comments