diff --git a/snap-upgrade.sh b/snap-upgrade.sh new file mode 100644 index 0000000..82d7fbd --- /dev/null +++ b/snap-upgrade.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +SNAP_CHANNEL="1.21/stable" +ALL_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl kubelet cdk-addons" +MASTER_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl cdk-addons" +WORKER_SNAPS="kube-proxy kubelet kubectl" + +# Download Juju 2.9 +snap download --channel=2.9 juju + +# Download latest snaps from designated channel +for snap in $ALL_SNAPS +do + snap download --channel=$SNAP_CHANNEL $snap +done + +# Attach new snaps to master units +for snap in $MASTER_SNAPS +do + juju attach kubernetes-master $snap=`ls ${snap}_*.snap` +done + +# Attach new snaps to worker units +for snap in $WORKER_SNAPS +do + juju attach kubernetes-worker $snap=`ls ${snap}_*.snap` +done + +# Upgrade to new snaps on masters, one at a time +for unit in `juju status --format json | jq -r '.applications|.["kubernetes-master"].units | keys[]'` +do + juju run-action $unit upgrade --wait +done + +# Upgrade to new snaps on workers, one at a time +for unit in `juju status --format json | jq -r '.applications|.["kubernetes-worker"].units | keys[]'` +do + juju run-action $unit upgrade --wait +done \ No newline at end of file