23.4. 基于文件的目录工作流


要使用 FBC 工作流,首先使用 加入 过程转换现有的非FBC 操作器,或者直接启动(如果您正在认证新 Operator)。FBC 工作流提供了一个模块化、模板驱动的结构,用于管理 OpenShift 目录,并支持通过 ci.yaml 文件中的配置进行自动更新。

23.4.1. 在工作流中启用 FBC

要使用 FBC 工作流,请添加以下字段更新 operator 存储库中的 ci.yaml 文件:

fbc:
  enabled: true
Copy to Clipboard Toggle word wrap

这会告知认证管道使用 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 映射示例

---
fbc:
  enabled: true
  catalog_mapping:
    - template_name: my-custom-semver-template.yaml # The name of the file inside ./catalog-templates directory
      catalogs_names: # a list of catalogs within the /catalogs directory
        - "v4.15"
        - "v4.16"
        - "v4.17"
      type: olm.semver
    - template_name: my-custom-basic-template.yaml # The name of the file inside catalog-templates directory
      catalogs_names:
        - "v4.12"
        - "v4.13"
      type: olm.template.basic
Copy to Clipboard Toggle word wrap

1:1 映射示例

---
fbc:
  enabled: true
  catalog_mapping:
  - template_name: v4.14.yaml
    catalog_names: ["v4.14"]
    type: olm.template.basic
  - template_name: v4.15.yaml
    catalog_names: ["v4.15"]
    type: olm.template.basic
  - template_name: v4.16.yaml
    catalog_names: ["v4.16"]
    type: olm.template.basic
  - template_name: v4.17.yaml
    catalog_names: ["v4.17"]
    type: olm.template.basic
Copy to Clipboard Toggle word wrap

23.4.4. 从模板生成目录

使用提供的 Makefile 来简化模板的目录生成。它为每个模板类型运行适当的 opm 命令自动完成流程。

如果您遵循新或转换的运算符的 加入 过程,则 operator 存储库应已包含 Makefile

确保它位于 operator 项目的根目录中:

.
├── 0.0.1/
│   ├── release-config.yaml
│   ├── manifests/
│   └── metadata/
├── catalog-templates/
├── ci.yaml
└── Makefile
Copy to Clipboard Toggle word wrap

运行以下命令,为每个支持的 OpenShift 版本生成 FBC 目录文件:

make catalogs
Copy to Clipboard Toggle word wrap

此命令处理您的目录模板,并在 catalog / 目录中创建结构化目录文件。生成后,通过拉取请求提交更新的目录文件。当您合并更改时,Operator 管道会将更新发布到 OpenShift Container Platform 索引。

输出结构示例

catalogs/
├── v4.12/
│   └── aqua/
│       └── catalog.yaml
├── v4.13/
│   └── aqua/
│       └── catalog.yaml
├── v4.14/
│   └── aqua/
│       └── catalog.yaml
├── v4.15/
│   └── aqua/
│       └── catalog.yaml
└── v4.16/
    └── aqua/
        └── catalog.yaml
Copy to Clipboard Toggle word wrap

23.4.5. 在目录中添加新捆绑包

使用两种方法将新的 Operator 捆绑包添加到目录中:

  • 自动进程
  • 手动过程

23.4.5.1. 使用自动发行版本

自动版本简化了捆绑包发行和目录更新过程。

使用此方法减少人工干预,并在 Operator 版本之间保持一致性。有关启用和使用此功能的详情,请参考 基于文件的目录自动发布

23.4.5.2. 手动添加捆绑包

按照以下步骤手动添加 Operator 捆绑包或使用基本模板:

  1. 使用传统 拉取请求(PR)工作流 提交新的 operator 版本。
  2. Operator 管道将捆绑包镜像构建、测试并释放到 registry。
  3. 释放捆绑包后,使用新的捆绑包镜像 pullspec 更新您的目录模板。您可以在 PR 的管道左侧的注释中找到此 pullspec
  4. 创建一个新的 PR,其中包含引用新发布的捆绑包的目录更新。
注意

手动更新需要两步 PR 进程来发布捆绑包,并更新目录模板。

23.4.6. 更新现有目录

基于文件的目录格式的一个关键优点是,您可以在发布捆绑包后修改 Operator 的更新图。这个灵活性可让您:

  • 调整版本更新顺序
  • 删除过时的或无效的捆绑包
  • 在不重新获取捆绑包的情况下应用其他发布后更改

更新目录模板后,运行 make 目录 来生成更新的目录。然后,通过标准拉取请求工作流提交生成的文件。

注意

使用标准拉取请求工作流提交所有目录更改,以使所有更新生效。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat