5.3. 为较新的 Operator SDK 版本升级项目
OpenShift Container Platform 4.9 支持 Operator SDK v1.10.1。如果您已在工作站上安装了 v1.8.0 CLI,可以通过安装最新版本将 CLI 升级到 v1.10.1。
但是,要确保现有 Operator 项目保持与 Operator SDK v1.10.1 的兼容性,需要升级步骤才能进行 v1.8.0 以来引入的相关破坏更改。您必须在之前使用 v1.8.0 创建或维护的任何 Operator 项目中手动执行升级步骤。
5.3.1. 升级 Operator SDK v1.10.1 的项目
为了与 v1.10.1 兼容,必须执行以下升级步骤来升级现有的 Operator 项目。
先决条件
- 已安装 operator SDK v1.10.1
- 之前通过 Operator SDK v1.8.0 创建或维护的 operator 项目
流程
对于基于 Ansible 的 Operator 项目,更新
molecule/default/prepare.yml
文件的Set pull policy
部分中的 命令:例 5.1.
molecule/default/prepare.yml
文件 diff- name: Set pull policy - command: '{{ "{{ kustomize }}" }} edit add patch pull_policy/{{ "{{ operator_pull_policy }}" }}.yaml' + command: '{{ "{{ kustomize }}" }} edit add patch --path pull_policy/{{ "{{ operator_pull_policy }}" }}.yaml'
Ansible 项目现在与 Kustomize 版本 3.8.7 构建。这个版本的 Kustomize 要求在
add patch
命令中通过--path
标志来提供补丁文件的路径。
您的 Operator 项目现在与 Operator SDK v1.10.1 兼容。
5.3.2. 已知问题
-
如果服务器 URL 包含路径,
ansible-operator
二进制文件将拒绝kubeconfig
文件。目前,除了在集群中将 Operator 作为 pod 运行外,没有其它临时解决方案,在这种情况下,它使用内部端点。这个问题的修复目前被阻止等待apimachinery
软件包的修复。如需了解更多详细信息,请参阅 operator-framework/operator-sdk#4925。