5.11. Operator バンドルの検証
Operator の作成者は、Operator SDK で bundle validate コマンドを実行して Operator バンドルのコンテンツおよび形式を検証できます。リモート Operator バンドルイメージまたはローカル Operator バンドルディレクトリーでコマンドを実行できます。
5.11.1. bundle validate コマンドについて リンクのコピーリンクがクリップボードにコピーされました!
Operator SDK scorecard コマンドは設定ファイルおよびテストイメージに基づいて Operator でテストを実行できますが、bundle validate サブコマンドは、ローカルバンドルディレクトリーおよびリモートバンドルイメージのコンテンツおよび構造を検証できます。
bundle validate コマンドの構文
$ operator-sdk bundle validate <bundle_dir_or_image> <flags>
bundle validate コマンドは、make bundle コマンドを使用してバンドルをビルドすると自動的に実行されます。
バンドルイメージはリモートレジストリーからプルされ、検証前にローカルにビルドされます。ローカルバンドルディレクトリーには Operator メタデータおよびマニフェストが含まれている必要があります。バンドルメタデータとマニフェストには、以下のバンドルレイアウトと同様の構造が必要です。
バンドルレイアウトの例
./bundle
├── manifests
│ ├── cache.my.domain_memcacheds.yaml
│ └── memcached-operator.clusterserviceversion.yaml
└── metadata
└── annotations.yaml
エラーが検出されない場合、バンドルテストは検証に合格し、終了コード 0 で終了します。
出力例
INFO[0000] All validation tests have completed successfully
エラーが検出されると、テストは検証に失敗し、終了コード 1 で終了します。
出力例
ERRO[0000] Error: Value cache.example.com/v1alpha1, Kind=Memcached: CRD "cache.example.com/v1alpha1, Kind=Memcached" is present in bundle "" but not defined in CSV
警告が含まれるバンドルテストは、エラーが検出されていない限り、終了コード 0 で検証を終了すことができます。テストはエラーが発生した場合にのみ失敗します。
出力例
WARN[0000] Warning: Value : (memcached-operator.v0.0.1) annotations not found
INFO[0000] All validation tests have completed successfully
bundle validate サブコマンドの詳細を確認するには、以下のコマンドを実行してください。
$ operator-sdk bundle validate -h