8.2. Operator SDK CLI リファレンス
Operator SDK コマンドラインインターフェイス (CLI) は、Operator の作成を容易にするために設計された開発キットです。
Operator プロジェクトの関連スキャフォールディングおよびテストツールなど、Red Hat がサポートするバージョンの Operator SDK CLI ツールは非推奨となり、OpenShift Container Platform の今後のリリースで削除される予定です。Red Hat は、現在のリリースライフサイクル中にこの機能のバグ修正とサポートを提供しますが、この機能は今後、機能拡張の提供はなく、OpenShift Container Platform リリースから削除されます。
新しい Operator プロジェクトを作成する場合、Red Hat がサポートするバージョンの Operator SDK は推奨されません。既存の Operator プロジェクトを使用する Operator 作成者は、OpenShift Container Platform 4.16 でリリースされるバージョンの Operator SDK CLI ツールを使用してプロジェクトを維持し、OpenShift Container Platform の新しいバージョンを対象とする Operator リリースを作成できます。
Operator プロジェクトの次の関連ベースイメージは 非推奨 ではありません。これらのベースイメージのランタイム機能と設定 API は、バグ修正と CVE への対応のために引き続きサポートされます。
- Ansible ベースの Operator プロジェクトのベースイメージ
- Helm ベースの Operator プロジェクトのベースイメージ
OpenShift Container Platform で非推奨となったか、削除された主な機能の最新の一覧は、OpenShift Container Platform リリースノートの 非推奨および削除された機能 セクションを参照してください。
サポートされていない、コミュニティーによって管理されているバージョンの Operator SDK は、Operator SDK (Operator Framework) を参照してください。
Operator SDK CLI 構文
operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]Operator SDK の詳細は、Operator の開発 を参照してください。
8.2.1. bundle
					operator-sdk bundle コマンドは Operator バンドルメタデータを管理します。
				
8.2.1.1. validate
						bundle validate サブコマンドは Operator バンドルを検証します。
					
| フラグ | 説明 | 
|---|---|
| 
										 | 
										 | 
| 
										 | 
										バンドルイメージをプルして展開するためのツール。バンドルイメージを検証する場合にのみ使用されます。使用できるオプションは、 | 
| 
										 | 利用可能なすべてのオプションのバリデーターをリスト表示します。これが設定されている場合、バリデーターは実行されません。 | 
| 
										 | 
										実行するオプションのバリデーターを選択するラベルセレクター。 | 
8.2.2. cleanup
					operator-sdk cleanup コマンドは、run コマンドでデプロイされた Operator 用に作成されたリソースを破棄し、削除します。
				
| フラグ | 説明 | 
|---|---|
| 
									 | 
									 | 
| 
									 | 
									CLI 要求に使用する  | 
| 
									 | CLI 要求がある場合の CLI 要求を実行する namespace。 | 
| 
									 | 
									コマンドが失敗せずに完了するまでの待機時間。デフォルト値は  | 
8.2.3. completion
					operator-sdk completion コマンドは、CLI コマンドをより迅速に、より容易に実行できるようにシェル補完を生成します。
				
| サブコマンド | 説明 | 
|---|---|
| 
									 | bash 補完を生成します。 | 
| 
									 | zsh 補完を生成します。 | 
| フラグ | 説明 | 
|---|---|
| 
									 | 使用方法に関するヘルプの出力。 | 
以下に例を示します。
operator-sdk completion bash
$ operator-sdk completion bash出力例
bash completion for operator-sdk -*- shell-script -*- ex: ts=4 sw=4 et filetype=sh
# bash completion for operator-sdk                         -*- shell-script -*-
...
# ex: ts=4 sw=4 et filetype=sh8.2.4. create
					operator-sdk create コマンドは、Kubernetes API の作成または スキャフォールディング に使用されます。
				
8.2.4.1. api
						create api サブコマンドは Kubernetes API をスキャフォールディングします。サブコマンドは、init コマンドで初期化されたプロジェクトで実行する必要があります。
					
| フラグ | 説明 | 
|---|---|
| 
										 | 
										 | 
8.2.5. generate
					operator-sdk generate コマンドは特定のジェネレーターを起動して、必要に応じてコードを生成します。
				
8.2.5.1. bundle
						generate bundle サブコマンドは、Operator プロジェクトのバンドルマニフェスト、メタデータ、および bundle.Dockerfile ファイルのセットを生成します。
					
							通常は、最初に generate kustomize manifests サブコマンドを実行して、generate bundle サブコマンドで使用される入力された Kustomize ベースを生成します。ただし、初期化されたプロジェクトで make bundle コマンドを使用して、これらのコマンドの順次の実行を自動化できます。
						
| フラグ | 説明 | 
|---|---|
| 
										 | 
										バンドルが属するチャネルのコンマ区切りリスト。デフォルト値は  | 
| 
										 | 
										 | 
| 
										 | バンドルのデフォルトチャネル。 | 
| 
										 | 
										デプロイメントや RBAC などの Operator マニフェストのルートディレクトリー。このディレクトリーは、 | 
| 
										 | 
										 | 
| 
										 | 
										既存のバンドルを読み取るディレクトリー。このディレクトリーは、バンドル  | 
| 
										 | 
										バンドルマニフェストの Kustomize ベースおよび  | 
| 
										 | バンドルマニフェストを生成します。 | 
| 
										 | バンドルメタデータと Dockerfile を生成します。 | 
| 
										 | バンドルを書き込むディレクトリー。 | 
| 
										 | 
										バンドルメタデータおよび Dockerfile を上書きします (ある場合)。デフォルト値は  | 
| 
										 | バンドルのパッケージ名。 | 
| 
										 | quiet モードで実行します。 | 
| 
										 | バンドルマニフェストを標準出力に書き込みます。 | 
| 
										 | 生成されたバンドルの Operator のセマンティックバージョン。新規バンドルを作成するか、Operator をアップグレードする場合にのみ設定します。 | 
8.2.5.2. kustomize
						generate kustomize サブコマンドには、Operator の Kustomize データを生成するサブコマンドが含まれます。
					
8.2.5.2.1. manifests
							generate kustomize manifests は Kustomize ベースを生成または再生成し、kustomization.yaml ファイルを config/manifests ディレクトリーに生成または再生成します。これは、他の Operator SDK コマンドでバンドルマニフェストをビルドするために使用されます。このコマンドは、ベースがすでに存在しない場合や --interactive=false フラグが設定されていない場合に、デフォルトでマニフェストベースの重要なコンポーネントである UI メタデータを対話的に要求します。
						
| フラグ | 説明 | 
|---|---|
| 
											 | API タイプ定義のルートディレクトリー。 | 
| 
											 | 
											 | 
| 
											 | 既存の Kustomize ファイルを含むディレクトリー。 | 
| 
											 | 
											 | 
| 
											 | Kustomize ファイルを書き込むディレクトリー。 | 
| 
											 | パッケージ名。 | 
| 
											 | quiet モードで実行します。 | 
8.2.6. init
					operator-sdk init コマンドは Operator プロジェクトを初期化し、指定されたプラグインのデフォルトのプロジェクトディレクトリーレイアウトを生成または スキャフォールド します。
				
このコマンドは、以下のファイルを作成します。
- ボイラープレートライセンスファイル
- 
							ドメインおよびリポジトリーを含む PROJECTファイル
- 
							プロジェクトをビルドする Makefile
- 
							プロジェクト依存関係のある go.modファイル
- 
							マニフェストをカスタマイズするための kustomization.yamlファイル
- マネージャーマニフェストのイメージをカスタマイズするためのパッチファイル
- Prometheus メトリクスを有効にするためのパッチファイル
- 
							実行する main.goファイル
| フラグ | 説明 | 
|---|---|
| 
									 | 
									 | 
| 
									 | 
									プロジェクトを初期化するプラグインの名前およびオプションのバージョン。利用可能なプラグインは  | 
| 
									 | 
									プロジェクトのバージョン。使用できる値は  | 
8.2.7. run
					operator-sdk run コマンドは、さまざまな環境で Operator を起動できるオプションを提供します。
				
8.2.7.1. bundle
						run bundle サブコマンドは、Operator Lifecycle Manager (OLM) を使用してバンドル形式で Operator をデプロイします。
					
| フラグ | 説明 | 
|---|---|
| 
										 | 
										バンドルを挿入するインデックスイメージ。デフォルトのイメージは  | 
| 
										 | 
										Operator のクラスターサービスバージョン (CSV) によってサポートされるインストールモード (例:  | 
| 
										 | 
										インストールのタイムアウト。デフォルト値は  | 
| 
										 | 
										CLI 要求に使用する  | 
| 
										 | CLI 要求がある場合の CLI 要求を実行する namespace。 | 
| 
										 | 
										カタログ Pod に使用するセキュリティーコンテキストを指定します。許可される値には、 | 
| 
										 | 
										 | 
- 
								restrictedセキュリティーコンテキストは、defaultnamespace と互換性がありません。実稼働環境で Operator の Pod セキュリティーアドミッションを設定する場合は、「Pod セキュリティーアドミッションに準拠」を参照してください。Pod セキュリティーアドミッションの詳細は、「Pod セキュリティーアドミッションの理解と管理」を参照してください。
8.2.7.2. bundle-upgrade
						run bundle-upgrade サブコマンドは、以前に Operator Lifecycle Manager (OLM) を使用してバンドル形式でインストールされた Operator をアップグレードします。
					
| フラグ | 説明 | 
|---|---|
| 
										 | 
										アップグレードのタイムアウト。デフォルト値は  | 
| 
										 | 
										CLI 要求に使用する  | 
| 
										 | CLI 要求がある場合の CLI 要求を実行する namespace。 | 
| 
										 | 
										カタログ Pod に使用するセキュリティーコンテキストを指定します。許可される値には、 | 
| 
										 | 
										 | 
- 
								restrictedセキュリティーコンテキストは、defaultnamespace と互換性がありません。実稼働環境で Operator の Pod セキュリティーアドミッションを設定する場合は、「Pod セキュリティーアドミッションに準拠」を参照してください。Pod セキュリティーアドミッションの詳細は、「Pod セキュリティーアドミッションの理解と管理」を参照してください。
8.2.8. scorecard
					operator-sdk scorecard コマンドは、スコアカードツールを実行して Operator バンドルを検証し、改善に向けた提案を提供します。このコマンドは、バンドルイメージまたはマニフェストおよびメタデータを含むディレクトリーのいずれかの引数を取ります。引数がイメージタグを保持する場合は、イメージはリモートに存在する必要があります。
				
| フラグ | 説明 | 
|---|---|
| 
									 | 
									スコアカード設定ファイルへのパス。デフォルトのパスは  | 
| 
									 | 
									 | 
| 
									 | 
									 | 
| 
									 | 実行可能なテストをリスト表示します。 | 
| 
									 | テストイメージを実行する namespace。 | 
| 
									 | 
									結果の出力形式。使用できる値はデフォルトの  | 
| 
									 | 
									指定されたセキュリティーコンテキストでスコアカードを実行するオプション。許可される値には、 | 
| 
									 | 実行されるテストを決定するラベルセレクター。 | 
| 
									 | 
									テストに使用するサービスアカウント。デフォルト値は  | 
| 
									 | テストの実行後にリソースクリーンアップを無効にします。 | 
| 
									 | 
									テストが完了するのを待つ秒数 (例:  | 
- 
							restrictedセキュリティーコンテキストは、defaultnamespace と互換性がありません。実稼働環境で Operator の Pod セキュリティーアドミッションを設定する場合は、「Pod セキュリティーアドミッションに準拠」を参照してください。Pod セキュリティーアドミッションの詳細は、「Pod セキュリティーアドミッションの理解と管理」を参照してください。