|
| 1 | +#!/bin/sh |
| 2 | +set -e |
| 3 | + |
| 4 | +# The envtest version and SHAs can be found here: https://raw.githubusercontent.com/kubernetes-sigs/controller-tools/HEAD/envtest-releases.yaml |
| 5 | + |
| 6 | +ENVTEST_VERSION=v1.31.0 |
| 7 | +ENVTEST_SUM_linux_amd64=5d96ae284610863ce5974e030aecd2eaad693f3210103ca778107aa0ea00f6f1d0a7b1b34aa74d7257cb0d7f713c2da365beba89b1d60823ce56c7b84b935423 |
| 8 | +ENVTEST_SUM_linux_arm64=72f5c8fd615c9db62eeb66e30edfda0f3879bffa3577c5776ec83363c018d7f51c174ac5ea807414072a21f8151a7bdf9826f414543f690686550e49db202ca0 |
| 9 | +ENVTEST_SUM_darwin_amd64=d681838609a1b0856e731888e0db0a1191003e1021801b5969b7d7084130076b30b2d99e53e460f1c5202b3308354a2118bd4a330d06d97797ef009dd56e256e |
| 10 | +ENVTEST_SUM_darwin_arm64=e42c27e1ee90d13d56189e665d4c79b7a34f637581fc7e20b028a3c16b22b85060760eb91ca79901bc1c22dcd0d66ef41a0f760c2f1ae65265f0576e4109d87d |
| 11 | + |
| 12 | +CLIENT_GO_MINOR=$(go list -m -f '{{if .Replace}}{{.Replace.Version}}{{else}}{{.Version}}{{end}}' k8s.io/client-go | cut -d . -f 2) |
| 13 | +ENVTEST_MINOR=$(echo "$ENVTEST_VERSION" | cut -d '.' -f 2) |
| 14 | + |
| 15 | +if [ "$CLIENT_GO_MINOR" != "$ENVTEST_MINOR" ]; then |
| 16 | + echo "k8s.io/client-go minor version ($CLIENT_GO_MINOR) does not match envtest minor version ($ENVTEST_MINOR)" >&2 |
| 17 | + exit 1 |
| 18 | +fi |
| 19 | + |
| 20 | +if ! command -v setup-envtest >/dev/null; then |
| 21 | + echo "Installing setup-envtest..." |
| 22 | + go install sigs.k8s.io/controller-runtime/tools/setup-envtest@52b17917caa97ec546423867d9637f1787830f3e |
| 23 | +fi |
| 24 | + |
| 25 | +OS=$(uname -s | tr '[:upper:]' '[:lower:]') |
| 26 | +ARCH=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/') |
| 27 | + |
| 28 | +eval "ENVTEST_SUM=\$ENVTEST_SUM_${OS}_${ARCH}" |
| 29 | + |
| 30 | +if [ -z "$ENVTEST_SUM" ]; then |
| 31 | + echo "Unsupported platform: ${OS}-${ARCH}" >&2 |
| 32 | + exit 1 |
| 33 | +fi |
| 34 | + |
| 35 | +TARBALL="envtest-${ENVTEST_VERSION}-${OS}-${ARCH}.tar.gz" |
| 36 | +URL="https://github.com/kubernetes-sigs/controller-tools/releases/download/envtest-${ENVTEST_VERSION}/${TARBALL}" |
| 37 | +DEST="/tmp/${TARBALL}" |
| 38 | + |
| 39 | +SEMVER=${ENVTEST_VERSION#v} |
| 40 | + |
| 41 | +if ! setup-envtest list -i | grep -q "v${SEMVER}"; then |
| 42 | + curl -sL -o "$DEST" "$URL" |
| 43 | + |
| 44 | + echo "${ENVTEST_SUM} ${DEST}" | sha512sum --check > /dev/null |
| 45 | + |
| 46 | + cat "$DEST" | setup-envtest sideload "${SEMVER}" > /dev/null |
| 47 | +fi |
0 commit comments