This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.7. Operator SDK CLI リファレンス
以下では、Operator SDK CLI コマンドおよびそれらの構文について説明します。
operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
11.7.1. build リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk build
コマンドはコードをコンパイルし、実行可能プロジェクトをビルドします。build
が完了すると、イメージは docker
でローカルにビルドされます。これは次にリモートレジストリーにプッシュされる必要があります。
引数 | 説明 |
---|---|
|
ビルトされるコンテナーイメージ (例: |
フラグ | 説明 |
---|---|
| テストバイナリーをイメージに追加することにより、クラスター内でのテストを有効にします。 |
|
テスト用の namespace を使用したリソースマニフェストのパス。デフォルト: |
|
テストの場所。デフォルト: |
| 使用方法についてのヘルプの出力。 |
--enable-tests
が設定される場合、build
コマンドはテストバイナリーもビルドし、これをコンテナーイメージに追加して、ユーザーがテストをクラスター上で Pod として実行できるように deploy/test-pod.yaml
ファイルを生成します。
出力例
11.7.2. completion リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk completion
コマンドは、CLI コマンドをより迅速に、より容易に実行できるようにシェル補完を生成します。
サブコマンド | 説明 |
---|---|
| bash 補完を生成します。 |
| zsh 補完を生成します。 |
フラグ | 説明 |
---|---|
| 使用方法についてのヘルプの出力。 |
出力例
operator-sdk completion bash bash completion for operator-sdk -*- shell-script -*- ex: ts=4 sw=4 et filetype=sh
$ operator-sdk completion bash
# bash completion for operator-sdk -*- shell-script -*-
...
# ex: ts=4 sw=4 et filetype=sh
11.7.3. print-deps リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk print-deps
コマンドは、Operator が必要とする最新の Golang パッケージおよびバージョンを出力します。これはデフォルトで単票形式 (columnar format) の出力を行います。
フラグ | 説明 |
---|---|
|
|
出力例
11.7.4. generate リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk generate
コマンドは特定のジェネレーターを起動して、必要に応じてコードを生成します。
サブコマンド | 説明 |
---|---|
|
すべての CRD API の Kubernetes code-generators を |
このコマンドは、カスタムリソースの API (spec
および status
) が更新されるたびに実行される必要があります。
出力例
11.7.5. olm-catalog リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk olm-catalog
は、すべての Operator Lifecycle Manager (OLM) Catalog 関連コマンドの親コマンドです。
11.7.5.1. gen-csv リンクのコピーリンクがクリップボードにコピーされました!
gen-csv
サブコマンドは、Cluster Service Version (CSV) マニフェスト、およびオプションでカスタムリソースリソース定義 (CRD) ファイルを deploy/olm-catalog/<operator_name>/<csv_version>
に書き込みます。
フラグ | 説明 |
---|---|
| CSV マニフェストのセマンティックバージョン。必須。 |
| 新規バージョンのベースとして使用する CSV マニフェストのセマンティックバージョン。 |
|
CSV 設定ファイルへのパス。デフォルト: |
|
最新の CRD マニフェストを使用して |
出力例
11.7.6. new リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk new
コマンドは新規の Operator アプリケーションを作成し、入力された <project_name>
に基づいてデフォルトのプロジェクトディレクトリーのレイアウトの生成 (または スキャフォールディング) を実行します。
引数 | 説明 |
---|---|
| 新規プロジェクトの名前。 |
フラグ | 説明 |
---|---|
|
|
|
新規プロジェクトが使用する依存関係マネージャー。 |
|
Ansible Playbook のスケルトンを生成します。 |
|
生成される Go ファイルのヘッダーを含むファイルへのパスです。 |
|
既存の Helm チャートで Helm Operator を初期化します。 |
| 要求される Helm チャートのチャートリポジトリー URL。 |
| Helm チャートの特定バージョン。(デフォルト: latest version) |
| 使用方法およびヘルプの出力。 |
|
CRD |
| ディレクトリーを Git リポジトリーとして実行しません。 |
|
初期化する Operator のタイプ: |
Go プロジェクトの使用例
mkdir $GOPATH/src/github.com/example.com/ cd $GOPATH/src/github.com/example.com/ operator-sdk new app-operator
$ mkdir $GOPATH/src/github.com/example.com/
$ cd $GOPATH/src/github.com/example.com/
$ operator-sdk new app-operator
Ansible プロジェクトの使用例
operator-sdk new app-operator \ --type=ansible \ --api-version=app.example.com/v1alpha1 \ --kind=AppService
$ operator-sdk new app-operator \
--type=ansible \
--api-version=app.example.com/v1alpha1 \
--kind=AppService
11.7.7. add リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk add
コマンドは、コントローラーまたはリソースをプロジェクトに追加します。コマンドは、Operator プロジェクトのルートディレクトリーから実行される必要があります。
サブコマンド | 説明 |
---|---|
|
新規カスタムリソース (CR) の新規 API 定義を |
|
新規コントローラーを |
|
CRD および CR ファイルを追加します。
|
フラグ | 説明 |
---|---|
|
|
|
CRD |
add api
出力サンプル
add controller
出力サンプル
add crd
出力サンプル
operator-sdk add crd --api-version app.example.com/v1alpha1 --kind AppService
$ operator-sdk add crd --api-version app.example.com/v1alpha1 --kind AppService
Generating Custom Resource Definition (CRD) files
Create deploy/crds/app_v1alpha1_appservice_crd.yaml
Create deploy/crds/app_v1alpha1_appservice_cr.yaml
11.7.8. test リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk test
コマンドは Operator をローカルでテストできます。
11.7.8.1. local リンクのコピーリンクがクリップボードにコピーされました!
local
サブコマンドは、Operator SDK のテストフレームワークを使用してビルドされた Go テストをローカルで実行します。
引数 | 説明 |
---|---|
|
e2e テストファイルの場所 (例: |
フラグ | 説明 |
---|---|
|
クラスターの |
|
グローバルリソースのマニフェストへのパス。デフォルト: |
|
テスト別の namespace を使用したリソースのマニフェストへのパス。デフォルト: |
|
空ではない場合、テストを実行する単一の namespace (例: |
|
|
|
クラスターのイメージとしてではなく、 |
| テストリソースの作成を無効にします。 |
| namespace を使用したマニフェストで指定されたイメージとは異なる Operator イメージを使用します。 |
| 使用方法についてのヘルプの出力。 |
出力例
operator-sdk test local ./test/e2e/ Output:
$ operator-sdk test local ./test/e2e/
# Output:
ok github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e 20.410s
11.7.9. up リンクのコピーリンクがクリップボードにコピーされました!
operator-sdk up
コマンドには、様々な方法で Operator を実行できるサブコマンドが含まれます。
11.7.9.1. local リンクのコピーリンクがクリップボードにコピーされました!
local
サブコマンドは、kubeconfig
ファイルを使用して Kubernetes クラスターにアクセスできる機能を使って Operator バイナリーをビルドし、Operator をローカルマシンで起動します。
引数 | 説明 |
---|---|
|
Kubernetes 設定ファイルへのファイルパス。デフォルト: |
|
Operator が変更の有無を監視する namespace。デフォルト: |
|
ローカル Operator が必要とする可能性のあるフラグ。例: |
| 使用方法についてのヘルプの出力。 |
出力例
operator-sdk up local \ --kubeconfig "mycluster.kubecfg" \ --namespace "default" \ --operator-flags "--flag1 value1 --flag2=value2"
$ operator-sdk up local \
--kubeconfig "mycluster.kubecfg" \
--namespace "default" \
--operator-flags "--flag1 value1 --flag2=value2"
以下の例では、デフォルトの kubeconfig
、デフォルトの namespace 環境変数を使用し、Operator のフラグで渡します。Operator フラグを使用するには、Operator がこのオプションの処理方法を認識している必要があります。たとえば、resync-interval
フラグを認識する Operator の場合は、以下を実行します。
operator-sdk up local --operator-flags "--resync-interval 10"
$ operator-sdk up local --operator-flags "--resync-interval 10"
デフォルト以外の namespace を使用することを予定している場合は、 --namespace
フラグを使用して、Operator が作成されるカスタムリソース (CR) を監視する場所を変更します。
operator-sdk up local --namespace "testing"
$ operator-sdk up local --namespace "testing"
これが機能させるには、Operator が WATCH_NAMESPACE
環境変数を処理する必要があります。これは、Operator に ユーティリティー機能 のk8sutil.GetWatchNamespace
を使用して実行できます。