Menu Close
Settings Close

Language and Page Formatting Options

5.6.2. 手動で定義される CSV フィールド

多くの CSV フィールドは、生成された、Operator SDK に特化していない汎用マニフェストを使用して設定することはできません。これらのフィールドは、ほとんどの場合、Operator および各種のカスタムリソース定義 (CRD) に関する人間が作成するメタデータです。

Operator 作成者はそれらのクラスターサービスバージョン (CSV) YAML ファイルを直接変更する必要があり、パーソナライズ設定されたデータを以下の必須フィールドに追加します。Operator SDK は、必須フィールドのいずれかにデータが欠落していることが検出されると、CSV 生成時に警告を送信します。

以下の表は、手動で定義された CSV フィールドのうち、必須フィールドとオプションフィールドについて詳細に示しています。

表5.7 必須

フィールド説明

metadata.name

CSV の固有名。Operator バージョンは、app-operator.v0.1.1 などのように一意性を確保するために名前に含める必要があります。

metadata.capabilities

Operator の成熟度モデルに応じた機能レベル。オプションには、Basic InstallSeamless UpgradesFull LifecycleDeep Insights、および Auto Pilot が含まれます。

spec.displayName

Operator を識別するためのパブリック名。

spec.description

Operator の機能についての簡単な説明。

spec.keywords

Operator について記述するキーワード。

spec.maintainers

name および email を持つ、Operator を維持する人または組織上のエンティティー

spec.provider

name を持つ、Operator のプロバイダー (通常は組織)。

spec.labels

Operator 内部で使用されるキー/値のペア。

spec.version

Operator のセマンティクスバージョン。 例: 0.1.1

spec.customresourcedefinitions

Operator が使用する任意の CRD。このフィールドは、CRD YAML ファイルが deploy/ にある場合に Operator SDK によって自動的に設定されます。ただし、CRD マニフェスト仕様にない複数のフィールドでは、ユーザーの入力が必要です。

  • description: description of the CRD.
  • resources: CRD によって利用される任意の Kubernetes リソース (例: Pod および StatefulSet オブジェクト)。
  • specDescriptors: Operator の入力および出力についての UI ヒント。

表5.8 オプション

フィールド説明

spec.replaces

この CSV によって置き換えられる CSV の名前。

spec.links

それぞれが name および url を持つ、Operator および管理されているアプリケーションに関する URL (例: Web サイトおよびドキュメント)。

spec.selector

Operator がクラスターでのリソースのペアの作成に使用するセレクター。

spec.icon

mediatypebase64data フィールドに設定される、Operator に固有の base64 でエンコーディングされるアイコン。

spec.maturity

このバージョンでソフトウェアが達成した成熟度。オプションに、planningpre-alphaalphabetastablematureinactive、および deprecated が含まれます。

上記の各フィールドが保持するデータについての詳細は、CSV spec を参照してください。

注記

現時点で、ユーザーの介入を必要とするいくつかの YAML フィールドは、Operator コードから解析される可能性があります。

5.6.2.1. Operator メタデータアノテーション

Operator 開発者は、クラスターサービスバージョン (CSV) のメタデータで特定のアノテーションを手動で定義し、OperatorHub などのユーザーインターフェイス (UI) の機能を有効にしたり、機能を強調したりできます。

以下の表は、metadata.annotations フィールドを使用して、手動で定義できる Operator メタデータアノテーションを一覧表示しています。

表5.9 アノテーション

フィールド説明

alm-examples

カスタムリソース定義 (CRD) テンプレートに最低限の設定セットを指定します。互換性のある UI は、ユーザーがさらにカスタマイズできるようにこのテンプレートの事前入力を行います。

operatorframework.io/initialization-resource

Operator のインストール時に作成する必要のある単一の必要なカスタムリソースを指定します。完全な YAML 定義が含まれるテンプレートを含める必要があります。

operatorframework.io/suggested-namespace

Operator をデプロイする必要のある推奨 namespace を設定します。

operators.openshift.io/infrastructure-features

Operator によってサポートされるインフラストラクチャー機能。ユーザーは、Web コンソールで OperatorHub を使用して Operator を検出する際に、これらの機能で表示してフィルターを実行できます。有効で、大文字と小文字が区別される値は以下のとおりです。

  • disconnected: Operator はすべての依存関係を含む非接続カタログにミラーリングされるため、インターネットへのアクセスは必要ありません。ミラーリングに必要なすべての関連イメージが Operator によって一覧表示されます。
  • cnf: Operator は Cloud-native Network Functions (CNF) Kubernetes プラグインを提供します。
  • CNI: Operator は Container Network Interface (CNI) Kubernetes プラグインを提供します。
  • csi: Operator は Container Storage Interface (CSI) Kubernetes プラグインを提供します。
  • fips: Operator は基礎となるプラットフォームの FIPS モードを受け入れ、FIPS モードで起動されるノードで機能します。
重要

FIPS 検証済み/進行中のモジュール (Modules in Process) 暗号ライブラリーの使用は、x86_64 アーキテクチャーの OpenShift Container Platform デプロイメントでのみサポートされています。

  • proxy-aware: Operator は、プロキシーの背後にあるクラスターでの実行をサポートします。Operator は、クラスターがプロキシーを使用するように設定される際に Operator Lifecycle Manager (OLM) が Operator に自動的に提供する標準のプロキシー環境変数の HTTP_PROXY および HTTPS_PROXY を受け入れます。必要な環境変数は、管理されているワークロード用にオペランドに渡されます。

operators.openshift.io/valid-subscription

Operator を使用するために必要とされる特定のサブスクリプションを一覧表示するための自由形式の配列です。例: '["3Scale Commercial License", "Red Hat Managed Integration"]'

operators.operatorframework.io/internal-objects

ユーザーの操作を目的としていない UI の CRD を非表示にします。

使用例

Operator は非接続およびプロキシー対応をサポートします

operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]'

Operator には OpenShift Container Platform ライセンスが必要です。

operators.openshift.io/valid-subscription: '["OpenShift Container Platform"]'

Operator には 3scale ライセンスが必要です

operators.openshift.io/valid-subscription: '["3Scale Commercial License", "Red Hat Managed Integration"]'

Operator は非接続およびプロキシー対応をサポートします。また、OpenShift Container Platform ライセンスが必要です。

operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]'
operators.openshift.io/valid-subscription: '["OpenShift Container Platform"]'