Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/common-go/go-get-kubernetes.sh
2492 views
1
#!/bin/bash
2
# Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
# Licensed under the GNU Affero General Public License (AGPL).
4
# See License.AGPL.txt in the project root for license information.
5
6
7
# based on https://github.com/kubernetes/kubernetes/issues/79384
8
9
VERSION=${1#"v"}
10
if [ -z "$VERSION" ]; then
11
echo "usage: $0 <version>"
12
echo
13
echo "example: $0 15.0"
14
echo " $0 17.3"
15
exit 1
16
fi
17
18
set -euo pipefail
19
20
echo "Retrieving kubernetes module file"
21
GM=$(go mod download -json k8s.io/kubernetes@v1."$VERSION" | jq -r .GoMod)
22
# shellcheck disable=SC2002,SC2207
23
MODS=($(cat "$GM" | grep -E "^\s+k8s.io/.*v0.0.0$" | tr -d '\t' | cut -d ' ' -f 1))
24
25
useSemver=$(echo "console.log(\"1.${VERSION}\" >= \"1.17\")" | node -)
26
if [ "$useSemver" = "true" ]; then
27
echo "Version is newer than 1.17 - using semver"
28
fi
29
30
echo Adding "${MODS[@]}"
31
for MOD in "${MODS[@]}"; do
32
if [ "$useSemver" = "true" ]; then
33
V="v0.${VERSION}"
34
else
35
V=$(go mod download -json "${MOD}@kubernetes-1.${VERSION}" | jq -r .Version)
36
fi
37
go mod edit "-replace=${MOD}=${MOD}@${V}"
38
done
39
40
go install -v ./...
41
42