1.3.9. Operator の開発
1.3.9.1. Operator SDK が完全にサポートされるようになりました。
OpenShift Container Platform 4.7 の時点で、Operator SDK は完全にサポートされる Red Hat オファリングになりました。Operator SDK v1.3.0 のダウンストリームのリリースにより、Operator SDK の公式にサポートされているツールおよび Operator SDK のブランドツールが Red Hat から直接ダウンロードできるようになりました。
Operator SDK CLI は、Operator の開発者および ISV (独立系ソフトウェアベンダー) パートナーが優れたユーザーエクスペリエンスを提供し、OpenShift ディストリビューションと Operator Lifecycle Manager (OLM) と互換性のある Operator を作成する支援をします。
Operator SDK を使用すると、Kubernetes ベースのクラスター (OpenShift Container Platform など) へのクラスター管理者のアクセスのある Operator の作成者は、Go、Ansible、または Helm をベースに独自の Operator を開発できます。Go ベースの Operator の場合、Kubebuilder はスキャフォールディングソリューションとして SDK に組み込まれます。つまり、既存の Kubebuilder プロジェクトは SDK でそのまま使用でき、引き続き機能します。
以下の機能は、Operator SDK の機能の一部のハイライトです。
- Operator Bundle Format のネイティブサポート
- Operator SDK には、OpenShift Container Platform 4.6 に導入された Operator Bundle Format のネイティブサポートが含まれます。OLM の Operator をパッケージ化するために必要なすべてのメタデータが自動生成されます。Operator 開発者はこの機能を使用し、OLM および OpenShift ディストリビューションの Operator を CI パイプラインから直接パッケージ化し、テストすることができます。
- Operator Lifecycle Manager の統合
-
Operator SDK は、それぞれの Operator をワークステーションから OLM を使用して簡単にテストできるような単純化されたエクスペリエンスを提供します。
run bundle
サブコマンドを使用して Operator をクラスターで実行し、OLM によって管理される際に Operator が正常に動作するかどうかをテストできます。 - Webhook の統合
- Operator SDK は OLM を使用した Webhook 統合 をサポートします。これは、受付またはカスタムリソース定義 (CRD) 変換 Webhook を持つ Operator のインストールを単純化します。この機能により、クラスター管理者は Webhook を手動で登録し、TLS 証明書を追加し、証明書のローテーションを設定する必要がなくなります。
- 検証スコアカード
- Operator の作成者は、Operator が適切にパッケージ化されていることと、構文エラーがないことを確認する必要があります。Operator を検証するには、Operator SDK で提供される スコアカードツール を、関連するカスタムリソース (CR) および Operator に必要なすべてのリソースを作成して開始します。スコアカードは、その後に API サーバーへの呼び出しを記録し、一部のテストを実行するために使用されるプロキシーコンテナーを Operator のデプロイメントに作成します。実行されるテストは CR の一部のパラメーターも検査します。
- アップグレードの準備状態 (readiness) についてのレポート
- Operator 開発者は Operator SDK を使用して、OLM への アップグレードの準備状態についてのレポート を含む、Operator の状態についてのコードのスキャフォールディングサポートを利用できます。
- Operator のアップグレードのトリガー
-
インデックスイメージおよびカタログソースを手動で管理しなくても、Operator SDK で OLM 統合を使用して Operator のアップグレードを迅速にテストできます。
run bundle-upgrade
サブコマンドは、より新しいバージョンのバンドルイメージを指定することにより、インストールされた Operator をトリガーしてそのバージョンにアップグレードするプロセスを自動化します。
Operator SDK v1.3.0 は Kubernetes 1.19 をサポートします。
Operator SDK についての詳細は、Operator の開発 について参照してください。