2.3.2. Package Manifest Format
Operator の Package Manifest Format は、Operator Framework で導入されたレガシーパッケージ形式です。この形式は OpenShift Container Platform 4.5 で非推奨となっていますが、これは引き続きサポートされ、現在 Red Hat が提供する Operator はこの方法を使用して提供されています。
この形式では、Operator のバージョンは単一のクラスターサービスバージョン (CSV) で表され、通常は追加のオブジェクトが含まれる可能性はありますが CSV の所有される API を定義するカスタムリソース定義 (CRD) で表されます。
Operator のすべてのバージョンは単一ディレクトリーにネストされます。
Package Manifest Format のレイアウトの例
etcd ├── 0.6.1 │ ├── etcdcluster.crd.yaml │ └── etcdoperator.clusterserviceversion.yaml ├── 0.9.0 │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.9.0.clusterserviceversion.yaml │ └── etcdrestore.crd.yaml ├── 0.9.2 │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.9.2.clusterserviceversion.yaml │ └── etcdrestore.crd.yaml └── etcd.package.yaml
また、パッケージ名およびチャネルの詳細を定義する package manifest である <name>.package.yaml
ファイルも含まれます。
パッケージマニフェストの例
packageName: etcd channels: - name: alpha currentCSV: etcdoperator.v0.9.2 - name: beta currentCSV: etcdoperator.v0.9.0 - name: stable currentCSV: etcdoperator.v0.9.2 defaultChannel: alpha
パッケージマニフェストを Operator レジストリーデータベースに読み込む際に、以下の要件が検証されます。
- すべてのパッケージには最低でも 1 つのチャネルがある。
- パッケージのチャネルによって参照されるすべての CSV が存在する。
- Operator のすべてのバージョンに 1 つの CSV がある。
- CSV が CRD を所有する場合、その CRD は Operator バージョンのディレクトリーに存在する必要がある。
- CSV が別の CSV を置き換える場合、新旧両方の CSV がパッケージに存在する必要がある。