1.2.15.6. 読み取り専用 Operator API (テクノロジープレビュー)
新規 Operator API が読み取り専用モードでテクノロジープレビューとして利用可能になりました。以前のバージョンでは、Operator Lifecycle Manager (OLM) を使用した Operator のインストールでは、クラスター管理者が CatalogSource、 Subscription、 ClusterServiceVersion、および InstallPlan オブジェクトを含む複数の API を認識している必要がありました。この単一 Operator API リソースは、OpenShift Container Platform クラスターで Operator のライフサイクルを検出し、管理するためのよりシンプルなエクスペリエンスを実現するための最初のステップになります。
現時点では、CLI でのみ利用可能であり、有効にするにはいくつかの手順を実行する必要があります。この機能プレビューではファーストクラスの API オブジェクトとして Operator と対話します。クラスター管理者は、oc get operator コマンドなどを使用し、この API を読み取り専用モードで使用して以前にインストールされた Operator を検出できます。
このテクノロジープレビュー機能を有効にするには、以下を実行します。
手順
OLM の Cluster Version Operator (CVO) 管理 を無効にします。
$ oc patch clusterversion version \ --type=merge -p \ '{ "spec":{ "overrides":[ { "kind":"Deployment", "name":"olm-operator", "namespace":"openshift-operator-lifecycle-manager", "unmanaged":true, "group":"apps/v1" } ] } }'OperatorLifecycleManagerV2=true機能ゲートを OLM Operator に追加します。OLM Operator のデプロイメントを編集します。
$ oc -n openshift-operator-lifecycle-manager \ edit deployment olm-operator以下のフラグをデプロイメントの
argsセクションに追加します。... spec: containers: - args: ... - --feature-gates - OperatorLifecycleManagerV2=true- 変更を保存します。
-
まだインストールしていない場合は、通常の OperatorHub メソッドを使用して Operator をインストールします。この例では、プロジェクト
test-projectにインストールされた etcd Operator を使用します。 インストールされた etcd Operator の新規 Operator リソースを作成します。
以下をファイルに保存します。
etcd-test-op.yamlファイルapiVersion: operators.coreos.com/v2alpha1 kind: Operator metadata: name: etcd-testリソースを作成します。
$ oc create -f etcd-test-op.yaml
インストールされた Operator の新規 API へのオプトインを可能にするには、
operators.coreos.com/etcd-testラベルを Operator に関連する以下のオブジェクトに適用します。-
Subscription -
InstallPlan -
ClusterServiceVersion - Operator によって所有される CRD
注記今後のリリースでは、これらのオブジェクトには
Subscriptionオブジェクトを使用して CSV がインストールされている Operator についてのラベルが自動的に付けられます。以下は例になります。
$ oc label sub etcd operators.coreos.com/etcd-test="" -n test-project $ oc label ip install-6c5mr operators.coreos.com/etcd-test="" -n test-project $ oc label csv etcdoperator.v0.9.4 operators.coreos.com/etcd-test="" -n test-project $ oc label crd etcdclusters.etcd.database.coreos.com operators.coreos.com/etcd-test="" $ oc label crd etcdbackups.etcd.database.coreos.com operators.coreos.com/etcd-test="" $ oc label crd etcdrestores.etcd.database.coreos.com operators.coreos.com/etcd-test=""-
Operator が新規 API にオプトインしていることを確認します。
すべての
operatorsリソースを一覧表示します。$ oc get operators NAME AGE etcd-test 17mOperator の詳細を検査し、ラベルを付けたオブジェクトが表示されていることを確認します。
$ oc describe operators etcd-testName: etcd-test Namespace: Labels: <none> Annotations: <none> API Version: operators.coreos.com/v2alpha1 Kind: Operator Metadata: Creation Timestamp: 2020-07-02T05:51:17Z Generation: 1 Resource Version: 37727 Self Link: /apis/operators.coreos.com/v2alpha1/operators/etcd-test UID: 6a441a4d-75fe-4224-a611-7b6c83716909 Status: Components: Label Selector: Match Expressions: Key: operators.coreos.com/etcd-test Operator: Exists Refs: API Version: apiextensions.k8s.io/v1 Conditions: Last Transition Time: 2020-07-02T05:50:40Z Message: no conflicts found Reason: NoConflicts Status: True Type: NamesAccepted Last Transition Time: 2020-07-02T05:50:41Z Message: the initial names have been accepted Reason: InitialNamesAccepted Status: True Type: Established Kind: CustomResourceDefinition Name: etcdclusters.etcd.database.coreos.com1 ... API Version: operators.coreos.com/v1alpha1 Conditions: Last Transition Time: 2020-07-02T05:50:39Z Message: all available catalogsources are healthy Reason: AllCatalogSourcesHealthy Status: False Type: CatalogSourcesUnhealthy Kind: Subscription Name: etcd2 Namespace: test-project ... API Version: operators.coreos.com/v1alpha1 Conditions: Last Transition Time: 2020-07-02T05:50:43Z Last Update Time: 2020-07-02T05:50:43Z Status: True Type: Installed Kind: InstallPlan Name: install-mhzm83 Namespace: test-project ... Kind: ClusterServiceVersion Name: etcdoperator.v0.9.44 Namespace: test-project Events: <none>