23.4. 基于文件的目录工作流
要使用 FBC 工作流,首先使用 加入 过程转换现有的非FBC 操作器,或者直接启动(如果您正在认证新 Operator)。FBC 工作流提供了一个模块化、模板驱动的结构,用于管理 OpenShift 目录,并支持通过 ci.yaml
文件中的配置进行自动更新。
23.4.1. 在工作流中启用 FBC 复制链接链接已复制到粘贴板!
要使用 FBC 工作流,请添加以下字段更新 operator 存储库中的 ci.yaml
文件:
fbc: enabled: true
fbc:
enabled: true
这会告知认证管道使用 FBC 工作流生成和更新目录。
23.4.2. FBC 模板 复制链接链接已复制到粘贴板!
基于文件的目录模板提供了 OpenShift 目录的简化、用户可编辑视图。Operator Package Manager (OPM)目前支持两种类型的模板。您可以选择最适合 Operator 发行策略的模板:
-
olm.template.basic
:简单升级流程的直接模板。 -
olm.semver
: 一个更高级的模板,支持使用语义版本支持自动频道生成。
红帽建议使用 olm.semver
来提高自动化。
有关模板模式的详情,请参阅 Operator Framework 文档。
23.4.3. 将模板映射到 OpenShift 目录 复制链接链接已复制到粘贴板!
要从模板生成目录,您需要在 ci.yaml
文件中提供模板和目录之间的映射。根据您的需要,您可以使用 1:N 映射或 1:1 映射映射模板
1:n 映射示例
1:1 映射示例
23.4.4. 从模板生成目录 复制链接链接已复制到粘贴板!
使用提供的 Makefile
来简化模板的目录生成。它为每个模板类型运行适当的 opm
命令自动完成流程。
如果您遵循新或转换的运算符的 加入 过程,则 operator 存储库应已包含 Makefile
。
确保它位于 operator 项目的根目录中:
运行以下命令,为每个支持的 OpenShift 版本生成 FBC 目录文件:
make catalogs
make catalogs
此命令处理您的目录模板,并在 catalog /
目录中创建结构化目录文件。生成后,通过拉取请求提交更新的目录文件。当您合并更改时,Operator 管道会将更新发布到 OpenShift Container Platform 索引。
输出结构示例 :
23.4.5. 在目录中添加新捆绑包 复制链接链接已复制到粘贴板!
使用两种方法将新的 Operator 捆绑包添加到目录中:
- 自动进程
- 手动过程
23.4.5.1. 使用自动发行版本 复制链接链接已复制到粘贴板!
自动版本简化了捆绑包发行和目录更新过程。
使用此方法减少人工干预,并在 Operator 版本之间保持一致性。有关启用和使用此功能的详情,请参考 基于文件的目录自动发布。
23.4.5.2. 手动添加捆绑包 复制链接链接已复制到粘贴板!
按照以下步骤手动添加 Operator 捆绑包或使用基本模板:
- 使用传统 拉取请求(PR)工作流 提交新的 operator 版本。
- Operator 管道将捆绑包镜像构建、测试并释放到 registry。
-
释放捆绑包后,使用新的捆绑包镜像
pullspec
更新您的目录模板。您可以在 PR 的管道左侧的注释中找到此pullspec
。 - 创建一个新的 PR,其中包含引用新发布的捆绑包的目录更新。
手动更新需要两步 PR 进程来发布捆绑包,并更新目录模板。
23.4.6. 更新现有目录 复制链接链接已复制到粘贴板!
基于文件的目录格式的一个关键优点是,您可以在发布捆绑包后修改 Operator 的更新图。这个灵活性可让您:
- 调整版本更新顺序
- 删除过时的或无效的捆绑包
- 在不重新获取捆绑包的情况下应用其他发布后更改
更新目录模板后,运行 make 目录
来生成更新的目录。然后,通过标准拉取请求工作流提交生成的文件。
使用标准拉取请求工作流提交所有目录更改,以使所有更新生效。