cert-manager/hack/latest-kind-images.sh
Ashley Davis 1e419a468f
Enable + use k8s 1.26 for e2e tests by default
Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2022-12-16 17:06:18 +00:00

140 lines
4.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright 2022 The cert-manager Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eu -o pipefail
# This script can be used to update kind images. However, you should check kind
# release notes as often specific images need to be used with a specific release
# of kind https://github.com/kubernetes-sigs/kind/releases
export KIND_IMAGE_REPO="docker.io/kindest/node"
CRANE=crane
TAGS=$(mktemp)
trap 'rm -f -- "$TAGS"' EXIT
if ! command -v $CRANE >/dev/null 2>&1; then
echo -e "Couldn't find crane. Try running:\ngo install github.com/google/go-containerregistry/cmd/crane@latest" >&2
exit 1
fi
function latest_kind_tag () {
grep -E "^v$1" $TAGS | sort --version-sort | tail -1
}
$CRANE ls $KIND_IMAGE_REPO > $TAGS
# the TAGS file will now look like:
# ...
# v1.19.4
# v1.19.7
# v1.20.0
# v1.20.2
# v1.20.7
# ...
LATEST_120_TAG=$(latest_kind_tag "1\\.20")
LATEST_121_TAG=$(latest_kind_tag "1\\.21")
LATEST_122_TAG=$(latest_kind_tag "1\\.22")
LATEST_123_TAG=$(latest_kind_tag "1\\.23")
LATEST_124_TAG=$(latest_kind_tag "1\\.24")
LATEST_125_TAG=$(latest_kind_tag "1\\.25")
LATEST_120_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_120_TAG)
LATEST_121_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_121_TAG)
LATEST_122_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_122_TAG)
LATEST_123_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_123_TAG)
LATEST_124_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_124_TAG)
LATEST_125_DIGEST=$(crane digest $KIND_IMAGE_REPO:$LATEST_125_TAG)
# k8s 1.26 is manually added for now, pending a wider rethink of how we can automate bumping of kind images
# given that kind release notes say there are specific digests which should be used with specific kind releases
LATEST_126_TAG=v1.26.0
LATEST_126_DIGEST=sha256:691e24bd2417609db7e589e1a479b902d2e209892a10ce375fab60a8407c7352
cat << EOF > ./make/kind_images.sh
# Copyright 2022 The cert-manager Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# generated by $0
KIND_IMAGE_K8S_120=$KIND_IMAGE_REPO@$LATEST_120_DIGEST
KIND_IMAGE_K8S_121=$KIND_IMAGE_REPO@$LATEST_121_DIGEST
KIND_IMAGE_K8S_122=$KIND_IMAGE_REPO@$LATEST_122_DIGEST
KIND_IMAGE_K8S_123=$KIND_IMAGE_REPO@$LATEST_123_DIGEST
KIND_IMAGE_K8S_124=$KIND_IMAGE_REPO@$LATEST_124_DIGEST
KIND_IMAGE_K8S_125=$KIND_IMAGE_REPO@$LATEST_125_DIGEST
# Manually set - see hack/latest-kind-images.sh for details
KIND_IMAGE_K8S_126=$KIND_IMAGE_REPO@$LATEST_126_DIGEST
# $KIND_IMAGE_REPO:$LATEST_120_TAG
KIND_IMAGE_SHA_K8S_120=$LATEST_120_DIGEST
# $KIND_IMAGE_REPO:$LATEST_121_TAG
KIND_IMAGE_SHA_K8S_121=$LATEST_121_DIGEST
# $KIND_IMAGE_REPO:$LATEST_122_TAG
KIND_IMAGE_SHA_K8S_122=$LATEST_122_DIGEST
# $KIND_IMAGE_REPO:$LATEST_123_TAG
KIND_IMAGE_SHA_K8S_123=$LATEST_123_DIGEST
# $KIND_IMAGE_REPO:$LATEST_124_TAG
KIND_IMAGE_SHA_K8S_124=$LATEST_124_DIGEST
# $KIND_IMAGE_REPO:$LATEST_125_TAG
KIND_IMAGE_SHA_K8S_125=$LATEST_125_DIGEST
# Manually set - see hack/latest-kind-images.sh for details
# $KIND_IMAGE_REPO:$LATEST_126_TAG
KIND_IMAGE_SHA_K8S_126=$LATEST_126_DIGEST
# note that these 'full' digests should be avoided since not all tools support them
# prefer KIND_IMAGE_K8S_*** instead
KIND_IMAGE_FULL_K8S_120=$KIND_IMAGE_REPO:$LATEST_120_TAG@$LATEST_120_DIGEST
KIND_IMAGE_FULL_K8S_121=$KIND_IMAGE_REPO:$LATEST_121_TAG@$LATEST_121_DIGEST
KIND_IMAGE_FULL_K8S_122=$KIND_IMAGE_REPO:$LATEST_122_TAG@$LATEST_122_DIGEST
KIND_IMAGE_FULL_K8S_123=$KIND_IMAGE_REPO:$LATEST_123_TAG@$LATEST_123_DIGEST
KIND_IMAGE_FULL_K8S_124=$KIND_IMAGE_REPO:$LATEST_124_TAG@$LATEST_124_DIGEST
KIND_IMAGE_FULL_K8S_125=$KIND_IMAGE_REPO:$LATEST_125_TAG@$LATEST_125_DIGEST
# Manually set - see hack/latest-kind-images.sh for details
KIND_IMAGE_FULL_K8S_126=$KIND_IMAGE_REPO:$LATEST_126_TAG@$LATEST_126_DIGEST
EOF
cat << EOF
# Images have been updated.
# Now check kind release notes and verify that if specific images are recommended to be used with the kind release that we are using, the script hasn't pulled in other images.
# https://github.com/kubernetes-sigs/kind/releases
EOF