This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.3. 为较新的 Operator SDK 版本更新项目
OpenShift Container Platform 4.10 支持 Operator SDK v1.16.0。如果已在工作站上安装了 v1.10.1 CLI,您可以通过安装最新版本,将 CLI 更新至 v1.16.0。
但是,要确保现有 Operator 项目保持与 Operator SDK v1.16.0 的兼容性,需要执行更新的相关步骤才能解决因为 v1.10.1 的变化可能造成的问题。您必须在之前使用 v1.10.1 创建或维护的任何 Operator 项目中手动执行更新步骤。
5.3.1. 更新 Operator SDK v1.16.0 的项目 复制链接链接已复制到粘贴板!
以下流程更新了现有 Operator 项目,以与 v1.16.0 兼容。
- Operator SDK v1.16.0 支持 Kubernetes 1.22。
-
Kubernetes 1.22 中删除了很多过时的
v1beta1
API,包括sigs.k8s.io/controller-runtime v0.10.0
和controller-gen v0.7
。 -
如果您需要 scaffold
v1beta1
API 为自定义资源定义(CRD)或 webhook 将项目发布至旧的集群版本,则将项目更新到 Kubernetes 1.22 会造成问题。
如需了解有关 Kubernetes 1.22 中引入的更改的更多信息,请参阅 Validating bundle manifests for APIs removed from Kubernetes 1.22 和 Beta APIs removed from Kubernetes 1.22。
先决条件
- 安装了 operator SDK v1.16.0。
- 使用 Operator SDK v1.10.1 创建或维护的 Operator 项目。
流程
在
config/default/manager_auth_proxy_patch.yaml
和config/rbac/auth_proxy_service.yaml
文件中添加protocol
字段:... ports: - containerPort: 8443 + protocol: TCP name: https
... ports: - containerPort: 8443 + protocol: TCP name: https
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
config/manager/manager.yaml
文件进行以下更改:增加 CPU 和内存限值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加注解来指定默认容器管理器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将
PHONY
目标添加到Makefile
文件中所有目标。 对于基于 Go 的 Operator 项目,请进行以下更改:
-
安装
setup-envtest
二进制文件。 更改您的
go.mod
文件以更新依赖项:k8s.io/api v0.22.1 k8s.io/apimachinery v0.22.1 k8s.io/client-go v0.22.1 sigs.k8s.io/controller-runtime v0.10.0
k8s.io/api v0.22.1 k8s.io/apimachinery v0.22.1 k8s.io/client-go v0.22.1 sigs.k8s.io/controller-runtime v0.10.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
go mod tidy
命令以下载依赖项:go mod tidy
$ go mod tidy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
Makefile
文件进行以下更改:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
make manifest
命令以使用更新版本的 Kubernetes 生成清单:make manifest
$ make manifest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
安装
对于基于 Ansible 的 Operator 项目,请进行以下更改:
将您的
requirements.yml
文件更改为包含以下内容:将
community.kubernetes
集合替换为kubernetes.core
集合:... - name: kubernetes.core version: "2.2.0" ...
... - name: kubernetes.core version: "2.2.0" ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
operator_sdk.util
程序从0.2.0
更新至0.3.1
:... - name: operator_sdk.util version: "0.3.1"
... - name: operator_sdk.util version: "0.3.1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
config/manager/manager.yaml
文件中的默认资源限值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Operator SDK 将这些值构建为合理的默认设置。Operator 作者应根据项目的要求设置和优化资源限值。
可选: 如果要使用
make run
命令在本地运行基于 Ansible 的 Operator,进行以下更改:更改
Makefile
文件中的运行目标:ANSIBLE_ROLES_PATH="$(ANSIBLE_ROLES_PATH):$(shell pwd)/roles" $(ANSIBLE_OPERATOR) run
ANSIBLE_ROLES_PATH="$(ANSIBLE_ROLES_PATH):$(shell pwd)/roles" $(ANSIBLE_OPERATOR) run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
ansible-runner
的本地版本更新为 2.0.2 或更高版本。重要自版本 2.0 起,
ansible-runner
工具包括与早期版本不兼容的命令签名的更改。