# Set the Operator SDK version to use. By default, what is installed on the system is used.
# This is useful for CI or a project to utilize a specific version of the operator-sdk toolkit.
OPERATOR_SDK_VERSION ?= v1.36.1-ocp
Red Hat OpenShift Service on AWS 支持 Operator SDK 1.36.1。如果您已经在工作站上安装了 1.31.0 CLI,您可以通过安装最新版本将 CLI 更新到 1.36.1。
Red Hat 支持的 Operator SDK CLI 工具版本(包括与 Operator 项目相关的脚手架和测试工具)已弃用,并计划在未来版本的 Red Hat OpenShift Service on AWS 中移除。Red Hat 将在此版本的生命周期内为该功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的 Red Hat OpenShift Service on AWS 版本中移除。 Red Hat 支持的 Operator SDK 版本不推荐用于创建新的 Operator 项目。拥有现有 Operator 项目的 Operator 作者可以使用 Red Hat OpenShift Service on AWS 发布的 Operator SDK CLI 工具版本来维护其项目并创建针对较新版本的 Red Hat OpenShift Service on AWS 的 Operator 版本。 以下与 Operator 项目相关的基础镜像_未_被弃用。这些基础镜像的运行时功能和配置 API 仍然支持错误修复和解决 CVE。
有关不受支持的社区维护版本的 Operator SDK 的信息,请参见Operator SDK (Operator Framework)。 |
但是,为了确保您的现有 Operator 项目与 Operator SDK 1.36.1 保持兼容性,需要针对自 1.31.0 版本以来引入的相关重大更改执行更新步骤。您必须在之前使用 1.31.0 创建或维护的任何 Operator 项目中手动执行更新步骤。
以下步骤将更新现有的基于 Helm 的 Operator 项目以使其与 1.36.1 兼容。
已安装 Operator SDK 1.36.1
使用 Operator SDK 1.31.0 创建或维护的 Operator 项目
编辑您的 Operator 项目的 Makefile 以将 Operator SDK 版本更新为v1.36.1-ocp
,如下例所示
# Set the Operator SDK version to use. By default, what is installed on the system is used.
# This is useful for CI or a project to utilize a specific version of the operator-sdk toolkit.
OPERATOR_SDK_VERSION ?= v1.36.1-ocp
更新kube-rbac-proxy
容器以使用基于 Red Hat Enterprise Linux (RHEL) 9 的镜像
在以下文件中查找kube-rbac-proxy
容器的条目
config/default/manager_auth_proxy_patch.yaml
您的 Operator 项目的bundle/manifests/<operator_name>.clusterserviceversion.yaml
,例如教程中的memcached-operator.clusterserviceversion.yaml
将拉取规范中的镜像名称从ose-kube-rbac-proxy
更新为ose-kube-rbac-proxy-rhel9
,并将标签更新为v
v
镜像标签的示例ose-kube-rbac-proxy-rhel9
拉取规范# ...
containers:
- name: kube-rbac-proxy
image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9:v
# ...
编辑您的 Operator 的 Dockerfile 以将ose-helm-rhel9-operator
镜像标签更新为,如下例所示
FROM registry.redhat.io/openshift4/ose-helm-rhel9-operator:v
kustomize/v2
插件现在已稳定,并且在使用go/v4
、ansible/v1
、helm/v1
和hybrid/v1-alpha
插件时,它是插件链中使用的默认版本。有关此默认脚手架的更多信息,请参阅 Kubebuilder 文档中的Kustomize v2。
如果您的 Operator 项目使用多平台或多架构构建,请将现有docker-buildx
目标替换为您项目 Makefile 中的以下定义
docker-buildx:
## Build and push the Docker image for the manager for multi-platform support
- docker buildx create --name project-v3-builder
docker buildx use project-v3-builder
- docker buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile .
- docker buildx rm project-v3-builder
您必须升级 Operator 项目中的 Kubernetes 版本才能使用 1.29。必须在您的项目结构、Makefile 和go.mod
文件中进行以下更改。
|
更新您的go.mod
文件以升级您的依赖项
k8s.io/api v0.29.2
k8s.io/apimachinery v0.29.2
k8s.io/client-go v0.29.2
sigs.k8s.io/controller-runtime v0.17.3
通过运行以下命令下载升级后的依赖项
$ go mod tidy
通过进行以下更改来更新 Makefile 中的 Kustomize 版本
- curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v5.2.1/kustomize_v5.2.1_$(OS)_$(ARCH).tar.gz | \
+ curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v5.3.0/kustomize_v5.3.0_$(OS)_$(ARCH).tar.gz | \