Path: blob/main/components/common-go/go-get-kubernetes.sh
2492 views
#!/bin/bash1# Copyright (c) 2020 Gitpod GmbH. All rights reserved.2# Licensed under the GNU Affero General Public License (AGPL).3# See License.AGPL.txt in the project root for license information.456# based on https://github.com/kubernetes/kubernetes/issues/7938478VERSION=${1#"v"}9if [ -z "$VERSION" ]; then10echo "usage: $0 <version>"11echo12echo "example: $0 15.0"13echo " $0 17.3"14exit 115fi1617set -euo pipefail1819echo "Retrieving kubernetes module file"20GM=$(go mod download -json k8s.io/kubernetes@v1."$VERSION" | jq -r .GoMod)21# shellcheck disable=SC2002,SC220722MODS=($(cat "$GM" | grep -E "^\s+k8s.io/.*v0.0.0$" | tr -d '\t' | cut -d ' ' -f 1))2324useSemver=$(echo "console.log(\"1.${VERSION}\" >= \"1.17\")" | node -)25if [ "$useSemver" = "true" ]; then26echo "Version is newer than 1.17 - using semver"27fi2829echo Adding "${MODS[@]}"30for MOD in "${MODS[@]}"; do31if [ "$useSemver" = "true" ]; then32V="v0.${VERSION}"33else34V=$(go mod download -json "${MOD}@kubernetes-1.${VERSION}" | jq -r .Version)35fi36go mod edit "-replace=${MOD}=${MOD}@${V}"37done3839go install -v ./...404142