diff --git a/scripts/upgrade-k8s.sh b/scripts/upgrade-k8s.sh new file mode 100755 index 00000000..f3767cb5 --- /dev/null +++ b/scripts/upgrade-k8s.sh @@ -0,0 +1,24 @@ +#!/bin/sh -eu + +# based on the work discussed in +# https://github.com/kubernetes/kubernetes/issues/79384#issuecomment-521493597 + +if [ $# != 1 ] || [ "$1" = "?" ] || [ "$1" = "--help" ]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +VERSION="$1" + +for MOD in $( + curl -sS https://raw.githubusercontent.com/kubernetes/kubernetes/v${VERSION}/go.mod | + sed -n 's|.*k8s.io/\(.*\) => ./staging/src/k8s.io/.*|k8s.io/\1|p' +); do + echo "$MOD" + V=$( + go mod download -json "${MOD}@kubernetes-${VERSION}" | + sed -n 's|.*"Version": "\(.*\)".*|\1|p' + ) + go mod edit "-replace=${MOD}=${MOD}@${V}" +done +go get "k8s.io/kubernetes@v${VERSION}"