5.3. Go ベースの Operator
5.3.1. Go ベースの Operator の Operator SDK の使用を開始する リンクのコピーリンクがクリップボードにコピーされました!
Operator SDK によって提供されるツールおよびライブラリーを使用して Go ベースの Operator をセットアップし、実行することに関連した基本内容を示すには、Operator 開発者は Go ベースの Memcached の 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) を参照してください。
5.3.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator SDK CLI がインストールされている。
-
OpenShift CLI (
oc) 4.16 以降がインストールされている。 - Go 1.21 以降
-
cluster-adminパーミッションを持つアカウントを使用して、ocで OpenShift Container Platform 4.16 クラスターにログインしている - クラスターがイメージをプルできるように、イメージをプッシュするリポジトリーを public として設定するか、イメージプルシークレットを設定している。
5.3.1.2. Go ベースの Operator の作成およびデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Operator SDK を使用して Memcached の単純な Go ベースの Operator をビルドし、デプロイできます。
手順
プロジェクトを作成します。
プロジェクトディレクトリーを作成します。
$ mkdir memcached-operatorプロジェクトディレクトリーに移動します。
$ cd memcached-operatoroperator-sdk initコマンドを実行してプロジェクトを初期化します。$ operator-sdk init \ --domain=example.com \ --repo=github.com/example-inc/memcached-operatorこのコマンドは、デフォルトで Go プラグインを使用します。
API を作成します。
単純な Memcached API を作成します。
$ operator-sdk create api \ --resource=true \ --controller=true \ --group cache \ --version v1 \ --kind MemcachedOperator イメージをビルドし、プッシュします。
デフォルトの
Makefileターゲットを使用して Operator をビルドし、プッシュします。プッシュ先となるレジストリーを使用するイメージのプル仕様を使用してIMGを設定します。$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>Operator を実行します。
CRD をインストールします。
$ make installプロジェクトをクラスターにデプロイします。
IMGをプッシュしたイメージに設定します。$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
サンプルカスタムリソース (CR) を作成します。
サンプル CR を作成します。
$ oc apply -f config/samples/cache_v1_memcached.yaml \ -n memcached-operator-systemOperator を調整する CR を確認します。
$ oc logs deployment.apps/memcached-operator-controller-manager \ -c manager \ -n memcached-operator-system
Delete a CR.
次のコマンドを実行して CR を削除します。
$ oc delete -f config/samples/cache_v1_memcached.yaml -n memcached-operator-systemクリーンアップします。
以下のコマンドを実行して、この手順の一部として作成されたリソースをクリーンアップします。
$ make undeploy
5.3.1.3. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
- Go ベースの Operator のビルドに関する詳細な手順は、Go ベースの Operator の Operator SDK チュートリアル を参照してください。