(ansible) - Upgrade kubernetes.core collection to v2.4.0

In the requirements.yaml file replace:

  - name: kubernetes.core
    version: "2.3.1"


  - name: kubernetes.core
    version: "2.4.0"

See #6334 for more details.

Upgrade K8s versions to use 1.26

Regarding the upcoming major changes in the plugin, please note that go/v3 is being deprecated by Kubebuilder hence Operator SDK would also be migrating to go/v4 soon. Following are the changes to be addressed in your project structure, Makefile and go.mod files: 1) [go/v3, ansible/v1, helm/v1] Update your go.mod file to upgrade the dependencies and run go mod tidy to download them go k8s.io/api v0.26.2 k8s.io/apiextensions-apiserver v0.26.2 k8s.io/apimachinery v0.26.2 k8s.io/cli-runtime v0.26.2 k8s.io/client-go v0.26.2 k8s.io/kubectl v0.26.2 sigs.k8s.io/controller-runtime v0.14.5 sigs.k8s.io/controller-tools v0.11.3 sigs.k8s.io/kubebuilder/v3 v3.9.1 2) [go/v3, ansible/v1, helm/v1] With the bump to Kubebuilder 3.9.1, the go/v3 projects are now scaffolded with 0.13.1 version of kube-rbac-proxy. Modify the version of kube-rbac-proxy in the following scaffolded files: - config/default/manager_auth_proxy_patch.yaml - bundle/manifests/memcached-operator.clusterserviceversion.yaml

  - gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0
  + gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
  1. [gov4alpha] For scaffolds, replace scaffoldings of v1beta1 by using k8s.io/api/admission/v1 instead of k8s.io/api/admission/v1beta1 as v1beta1 is removed in latest k8s.
  - admissionv1beta1 "k8s.io/api/admission/v1beta1"
  + admissionv1 "k8s.io/api/admission/v1"
  1. [gov4alpha] The project structure has changed from /controllers to internal/controller/. Modify the Dockerfile of the go/v4-alpha plugin to below:
  - COPY controllers/ controllers/
  + COPY internal/controller/ internal/controller/
  1. [go/v3, gov4alpha] Update your Makefile by
  • Replacing ENVTEST_K8S_VERSION = 1.25 with ENVTEST_K8S_VERSION = 1.26.
  • Using manifests generate fmt vet to build manager binary by replacing generate fmt vet in the build target to manifests generate fmt vet:
  - build: generate fmt vet ## Build manager binary.
  + build: manifests generate fmt vet ## Build manager binary.
  1. [gov4alpha] The gov4alpha plugin is now being scaffolded with Kubebuilder’s go/v4-alpha which has a modified project file structure according to Go’s best practices. Refer https://github.com/kubernetes-sigs/kubebuilder/pull/2985 for changes. Make the following changes in your scaffolded project if gov4aplha plugin was used: - Replacing go run ./main.go to go run ./cmd/main.go due to the change in project structure.
    • Replacing
  - `test -s $(LOCALBIN)/controller-gen || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION)`
  + test -s $(LOCALBIN)/controller-gen && $(LOCALBIN)/controller-gen --version | grep -q $(CONTROLLER_TOOLS_VERSION) || \
  GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION)

See #6352 for more details.

Last modified March 14, 2023: Release v1.28.0 (#6359) (5e496a68)