Created
June 1, 2020 16:49
-
-
Save mattmattox/e8c0e0c400f3f885c6c63eea56a4997c to your computer and use it in GitHub Desktop.
Rolling HAProxy upgrade for Rancher v1.6.18-patch1-rc2 to v1.6.18-patch1-rc3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
CATTLE_URL="http://rancher.example.com/v2-beta" | |
CATTLE_ACCESS_KEY="AAAAAAAAAAAAAAAAAAA" | |
CATTLE_SECRET_KEY="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" | |
SLEEP=5 | |
projects=`curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X GET -H 'Accept: application/json' -H 'Content-Type: application/json' "${CATTLE_URL}/projects/" | jq -r .data | jq '.[]' | jq '.id' | tr -d '"'` | |
for project in $projects | |
do | |
echo "############################################################" | |
echo "Working on project $project" | |
loadbalancers=`curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X GET -H 'Accept: application/json' -H 'Content-Type: application/json' "${CATTLE_URL}/projects/${project}/loadbalancerservices/" | jq -r .data | jq '.[]' | jq '.id' | tr -d '"'` | |
for loadbalancer in $loadbalancers | |
do | |
echo "Working on loadbalancer $loadbalancer" | |
CURRENT_CONFIG=`curl -s -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" -X GET -H 'Accept: application/json' -H 'Content-Type: application/json' "${CATTLE_URL}/projects/${project}/loadbalancerservices/${loadbalancer}" | jq -r .` | |
echo "Current config: $CURRENT_CONFIG" | |
if [[ ! `echo $CURRENT_CONFIG | grep 'lb-service-haproxy:v0.9.14'` ]] | |
then | |
echo "Need to change image..." | |
NEW_CONFIG=`echo $CURRENT_CONFIG | sed 's/lb-service-haproxy:v0.9.1/lb-service-haproxy:v0.9.14/g'` | |
echo "New config: $NEW_CONFIG" | |
echo "Updating config..." | |
curl -u "${CATTLE_ACCESS_KEY}:${CATTLE_SECRET_KEY}" \ | |
-X PUT \ | |
-H 'Accept: application/json' \ | |
-H 'Content-Type: application/json' \ | |
-d "$NEW_CONFIG" \ | |
"${CATTLE_URL}/projects/${project}/loadbalancerservices/${loadbalancer}" | |
echo "" | |
echo "Sleeping..." | |
sleep $SLEEP | |
else | |
echo "No need to upgrade..." | |
fi | |
done | |
echo "############################################################" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment