Updating Go-based Operator projects for newer Operator SDK versions
OKD 4.13 supports Operator SDK 1.28.0. If you already have the 1.25.4 CLI installed on your workstation, you can update the CLI to 1.28.0 by installing the latest version.
However, to ensure your existing Operator projects maintain compatibility with Operator SDK 1.28.0, update steps are required for the associated breaking changes introduced since 1.25.4. You must perform the update steps manually in any of your Operator projects that were previously created or maintained with 1.25.4.
Updating Go-based Operator projects for Operator SDK 1.28.0
The following procedure updates an existing Go-based Operator project for compatibility with 1.28.0.
Prerequisites
Operator SDK 1.28.0 installed
An Operator project created or maintained with Operator SDK 1.25.4
Procedure
Find the
ose-kube-rbac-proxy
pull spec in the following files, and update the image tag tov4.13
:config/default/manager_auth_proxy_patch.yaml
bundle/manifests/memcached-operator.clusterserviceversion.yaml
…
containers:
- name: kube-rbac-proxy
image: registry.redhat.io/openshift4/ose-kube-rbac-proxy:v4.13 (1)
…
1 Update the tag version from v4.12
tov4.13
.Modify your
go.mod
file to include the following dependencies and updated versions: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
Download the latest dependencies by running the following command:
$ go mod tidy
Modify your Makefile with the following changes:
Change the
ENVTEST_K8S_VERSION
field from1.25
to1.26
.Change the
build
target fromgenerate fmt vet
tomanifests generate fmt vet
:- build: generate fmt vet ## Build manager binary.
+ build: manifests generate fmt vet ## Build manager binary.