22.5. ファイルベースのカタログ自動リリース
自動リリースは、バンドルのリリース後のカタログ更新を自動化することで、FBC ワークフローを簡素化します。これにより、手作業が減り、カタログテンプレート全体の一貫性が確保されます。
22.5.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
標準的な FBC リリースワークフローには、次の 2 つのステップが含まれます。
- Operator バンドルをビルド、テスト、リリースする
- リリースされたバンドルを OpenShift Container Platform (OCP) カタログに追加する
自動リリース機能を使用して、2 番目のステップを自動化できるようになりました。自動リリース機能を有効にすると、カタログが自動的に更新されます。
新しいバンドルと release-config.yaml ファイルの両方を含むプルリクエストを送信すると、リリースパイプラインが残りの処理を行います。必要なカタログの変更を含むフォローアップのプルリクエストを作成してマージします。自動生成されたカタログ PR の例は こちら で確認できます。
22.5.2. release-config.yaml ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
FBC モードで Operator バンドルを OpenShift Container Platform (OCP) カタログに自動リリースできるようにするには、対応するバンドルバージョンディレクトリーに release-config.yaml ファイルを追加します。たとえば、Operators/aqua/0.0.2/release-config.yaml です。
tree operators/aqua
.
├── 0.0.2
│ ├── release-config.yaml # This is the file
│ ├── manifests
│ └── metadata
├── catalog-templates
├── ci.yaml
└── Makefile
release-config.yaml ファイルは、新しいバンドルがリリースされる場所を定義します。具体的には、どのカタログテンプレートを更新するか、バンドルが更新グラフにどのように適合するかを定義します。
例
---
catalog_templates:
- template_name: basic.yaml
channels: [my-channel]
replaces: aqua.0.0.1
- template_name: semver.yaml
channels: [Fast, Stable]
この例では、以下が適用されます。
-
Operator バンドルは、
basic.yamlテンプレートのmy-channelチャネルにリリースされます。 -
同じバンドルが、
semver.yamlテンプレートのFastチャネルとStableチャネルにもリリースされます。 -
replacesフィールド (オプション) は、更新グラフで新しいバンドルが置き換える以前のバンドルバージョンを指定します。
22.5.3. ファイル構造の詳細 リンクのコピーリンクがクリップボードにコピーされました!
release-config.yaml ファイルの構造は、パイプラインの実行中に自動的に検証されます。ファイルがスキーマに準拠していない場合、プルリクエストは失敗し、詳細なエラーメッセージが表示されます。
ファイルは次の構造を使用する必要があります。
-
最上位キーは
catalog_templatesです。このキーには、カタログ更新定義のリストが含まれています。 リスト内の各項目は 1 つのカタログテンプレートを表し、次の項目を含める必要があります。
-
template_name:catalog-templates/ディレクトリーにあるカタログテンプレートファイルの名前。 channels: バンドルをリリースするチャネルのリスト。SemVer テンプレートの場合、有効な値 は、
Fast、Stable、Candidateです。-
replaces(オプション): 更新グラフ内で新しいバンドルが置き換えるバンドルを指定します。これは基本テンプレートに対してのみ有効です。 -
skips(オプション): 更新グラフでスキップするバンドルのリスト。これは基本テンプレートに対してのみ有効です。 -
skipRange(オプション): スキップするバンドルバージョンを示す範囲。これは基本テンプレートに対してのみ有効です。
-
詳細は、release-config.yaml スキーマのドキュメント を参照してください。