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

5.3.3. 其他资源