Skip to content

Commit

Permalink
Bump k8s dependencies to 1.30 (#1158)
Browse files Browse the repository at this point in the history
<!-- affects all -->
Continuing the epic to upgrade from kubernetes 1.28 -> 1.31, bump the
k8s dependencies
  • Loading branch information
edude03 authored Jan 22, 2025
1 parent 9117d76 commit 8ece7f6
Show file tree
Hide file tree
Showing 11 changed files with 328 additions and 166 deletions.
56 changes: 40 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,10 @@ load-example-vms: check-local-context kubectl kind k3d ## Load the testing VM im
.PHONY: example-vms
example-vms: docker-build-examples load-example-vms ## Build and push the testing VM images to the kind/k3d cluster.

.PHONY: example-vms-arm64
example-vms-arm64: TARGET_ARCH=arm64
example-vms-arm64: example-vms

.PHONY: load-pg16-disk-test
load-pg16-disk-test: check-local-context kubectl kind k3d ## Load the pg16-disk-test VM image to the kind/k3d cluster.
@if [ $$($(KUBECTL) config current-context) = k3d-$(CLUSTER_NAME) ]; then $(K3D) image import $(PG16_DISK_TEST_IMG) --cluster $(CLUSTER_NAME) --mode direct; fi
Expand Down Expand Up @@ -471,27 +475,26 @@ $(LOCALBIN):

## Tools
KUSTOMIZE ?= $(LOCALBIN)/kustomize
# same as used in kubectl v1.28.x ; see https://github.com/kubernetes-sigs/kustomize/tree/master?tab=readme-ov-file#kubectl-integration
# _should_ be the same version kubectl v1.30.x uses (IE https://github.com/kubernetes/kubectl/blob/release-1.30/go.mod#L44) however
# there is apparently no 5.0.4 binary release
KUSTOMIZE_VERSION ?= v5.1.1

ENVTEST ?= $(LOCALBIN)/setup-envtest
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
# List of available versions: https://storage.googleapis.com/kubebuilder-tools
ENVTEST_K8S_VERSION = 1.28.3
ENVTEST_K8S_VERSION = 1.30.0

CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
# We went ahead of k8s 1.28 with controller-tools v0.14.0 (which depends on k8s 1.29) to unblock go 1.22 upgrade.
# It should be *relatively* safe as the only changes from this controller-tools version are description in CRD.
# Once we upgrade to k8s 1.29, there's no need to change CONTROLLER_TOOLS_VERSION, and this 3 lines can be removed.
#
# k8s deps @ 1.29.0 https://github.com/kubernetes-sigs/controller-tools/blob/<version>/go.mod
CONTROLLER_TOOLS_VERSION ?= v0.14.0

CODE_GENERATOR_VERSION ?= v0.28.12
# k8s deps @ 1.30.7 https://github.com/kubernetes-sigs/controller-tools/blob/<version>/go.mod
CONTROLLER_TOOLS_VERSION ?= v0.15.0

# Should match the kubernetes minor vesion
CODE_GENERATOR_VERSION ?= v0.30.7

KUTTL ?= $(LOCALBIN)/kuttl
# k8s deps @ 1.28.3
KUTTL_VERSION ?= v0.16.0
# k8s deps @ 1.30.7
KUTTL_VERSION ?= v0.18.0
ifeq ($(GOARCH), arm64)
KUTTL_ARCH = arm64
else ifeq ($(GOARCH), amd64)
Expand All @@ -500,15 +503,21 @@ else
$(error Unsupported architecture: $(GOARCH))
endif
KUBECTL ?= $(LOCALBIN)/kubectl
KUBECTL_VERSION ?= v1.29.10
KUBECTL_VERSION ?= v1.30.7

ETCD ?= $(LOCALBIN)/etcd

# Use the same version kuberentes is tested against, see
# https://github.com/kubernetes/kubernetes/blob/release-1.30/build/dependencies.yaml#L65-L67 for example
ETCD_VERSION ?= v3.5.15

KIND ?= $(LOCALBIN)/kind
# https://github.com/kubernetes-sigs/kind/releases/tag/v0.23.0, supports k8s up to 1.30
KIND_VERSION ?= v0.23.0
# https://github.com/kubernetes-sigs/kind/releases/tag/v0.24.0, supports k8s up to 1.31
KIND_VERSION ?= v0.24.0

K3D ?= $(LOCALBIN)/k3d
# k8s deps in go.mod @ v1.29.4 (nb: binary, separate from images)
K3D_VERSION ?= v5.7.4
# k8s deps in go.mod @ 1.30.7
K3D_VERSION ?= v5.7.5

## Install tools
KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
Expand Down Expand Up @@ -555,3 +564,18 @@ cert-manager: check-local-context kubectl ## install cert-manager to cluster
python-init:
python3 -m venv tests/e2e/.venv
tests/e2e/.venv/bin/pip install -r requirements.txt

.PHONY: etcd
etcd: $(ETCD)
$(ETCD): $(LOCALBIN)
@test -s $(LOCALBIN)/etcd || { \
if [ "$(GOOS)" = "darwin" ]; then \
curl -sfSL -o $(LOCALBIN)/etcd-temp https://github.com/etcd-io/etcd/releases/download/$(ETCD_VERSION)/etcd-$(ETCD_VERSION)-$(GOOS)-$(GOARCH).zip && \
unzip -j $(LOCALBIN)/etcd-temp "*/etcd" "*/etcdctl" -d $(LOCALBIN) && \
rm $(LOCALBIN)/etcd-temp; \
else \
curl -sfSL -o $(LOCALBIN)/etcd-temp https://github.com/etcd-io/etcd/releases/download/$(ETCD_VERSION)/etcd-$(ETCD_VERSION)-$(GOOS)-$(GOARCH).tar.gz && \
tar -xvf $(LOCALBIN)/etcd-temp -C $(LOCALBIN) --strip-components=1 && \
rm $(LOCALBIN)/etcd-temp; \
fi \
}
88 changes: 44 additions & 44 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,35 @@ go 1.23.0
replace (
github.com/google/gnostic => github.com/google/gnostic v0.7.0
github.com/optiopay/kafka => github.com/optiopay/kafka v0.0.0
k8s.io/api => k8s.io/api v0.29.10
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.10
k8s.io/apimachinery => k8s.io/apimachinery v0.29.10
k8s.io/apiserver => k8s.io/apiserver v0.29.10
k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.10
k8s.io/client-go => k8s.io/client-go v0.29.10
k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.10
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.10
k8s.io/code-generator => k8s.io/code-generator v0.29.10
k8s.io/component-base => k8s.io/component-base v0.29.10
k8s.io/component-helpers => k8s.io/component-helpers v0.29.10
k8s.io/controller-manager => k8s.io/controller-manager v0.29.10
k8s.io/cri-api => k8s.io/cri-api v0.29.10
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.10
k8s.io/endpointslice => k8s.io/endpointslice v0.29.10
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.10
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.10
k8s.io/api => k8s.io/api v0.30.7
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.30.7
k8s.io/apimachinery => k8s.io/apimachinery v0.30.7
k8s.io/apiserver => k8s.io/apiserver v0.30.7
k8s.io/cli-runtime => k8s.io/cli-runtime v0.30.7
k8s.io/client-go => k8s.io/client-go v0.30.7
k8s.io/cloud-provider => k8s.io/cloud-provider v0.30.7
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.30.7
k8s.io/code-generator => k8s.io/code-generator v0.30.7
k8s.io/component-base => k8s.io/component-base v0.30.7
k8s.io/component-helpers => k8s.io/component-helpers v0.30.7
k8s.io/controller-manager => k8s.io/controller-manager v0.30.7
k8s.io/cri-api => k8s.io/cri-api v0.30.7
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.30.7
k8s.io/endpointslice => k8s.io/endpointslice v0.30.7
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.30.7
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.30.7
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00
k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.10
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.10
k8s.io/kubectl => k8s.io/kubectl v0.29.10
k8s.io/kubelet => k8s.io/kubelet v0.29.10
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.10
k8s.io/metrics => k8s.io/metrics v0.29.10
k8s.io/mount-utils => k8s.io/mount-utils v0.29.10
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.10
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.10
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.29.10
k8s.io/sample-controller => k8s.io/sample-controller v0.29.10
k8s.io/kube-proxy => k8s.io/kube-proxy v0.30.7
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.30.7
k8s.io/kubectl => k8s.io/kubectl v0.30.7
k8s.io/kubelet => k8s.io/kubelet v0.30.7
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.30.7
k8s.io/metrics => k8s.io/metrics v0.30.7
k8s.io/mount-utils => k8s.io/mount-utils v0.30.7
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.30.7
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.30.7
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.30.7
k8s.io/sample-controller => k8s.io/sample-controller v0.30.7
)

require (
Expand Down Expand Up @@ -75,14 +75,14 @@ require (
golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53
golang.org/x/term v0.27.0
gopkg.in/yaml.v3 v3.0.1
k8s.io/api v0.29.30
k8s.io/apimachinery v0.29.30
k8s.io/apiserver v0.30.2
k8s.io/client-go v0.29.30
k8s.io/api v0.30.7
k8s.io/apimachinery v0.30.7
k8s.io/apiserver v0.30.7
k8s.io/client-go v0.30.7
k8s.io/klog/v2 v2.120.1
k8s.io/kubernetes v1.29.10
k8s.io/kubernetes v1.30.7
nhooyr.io/websocket v1.8.7
sigs.k8s.io/controller-runtime v0.17.6 // should match k8s dependencies versions
sigs.k8s.io/controller-runtime v0.18.5 // should match k8s dependencies versions
)

require (
Expand Down Expand Up @@ -125,7 +125,7 @@ require (
github.com/docker/go-units v0.5.0 // indirect
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.8.0 // indirect
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
Expand All @@ -138,7 +138,7 @@ require (
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/cel-go v0.17.7 // indirect
github.com/google/cel-go v0.17.8 // indirect
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
Expand Down Expand Up @@ -206,20 +206,20 @@ require (
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gotest.tools/v3 v3.5.1 // indirect
k8s.io/apiextensions-apiserver v0.29.2 // indirect
k8s.io/apiextensions-apiserver v0.30.7 // indirect
k8s.io/cloud-provider v0.0.0 // indirect
k8s.io/component-base v0.29.10 // indirect
k8s.io/component-helpers v0.29.10 // indirect
k8s.io/controller-manager v0.29.10 // indirect
k8s.io/component-base v0.30.7 // indirect
k8s.io/component-helpers v0.30.7 // indirect
k8s.io/controller-manager v0.30.7 // indirect
k8s.io/csi-translation-lib v0.0.0 // indirect
k8s.io/dynamic-resource-allocation v0.28.12 // indirect
k8s.io/kms v0.29.10 // indirect
k8s.io/dynamic-resource-allocation v0.30.7 // indirect
k8s.io/kms v0.30.7 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
k8s.io/kube-scheduler v0.0.0 // indirect
k8s.io/kubelet v0.28.12 // indirect
k8s.io/kubelet v0.30.7 // indirect
k8s.io/mount-utils v0.0.0 // indirect
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
Expand Down
Loading

0 comments on commit 8ece7f6

Please sign in to comment.