1.2.11.5. Operator API がサポートされる
OpenShift Container Platform 4.5 でテクノロジープレビュー機能として導入された Operator API がデフォルトでサポートされ、有効にされるようになりました。Operator Lifecycle Manager (OLM) を使用した Operator のインストールでは、クラスター管理者が CatalogSource
、Subscription
、ClusterServiceVersion
、および InstallPlan
などの複数の API を認識している必要がありました。この単一 Operator API リソースは、OpenShift Container Platform クラスターで Operator のライフサイクルを検出し、管理するためのよりシンプルなエクスペリエンスを実現するための最初のステップになります。
関連するリソースは、Subscription
リソースを使用して CSV がインストールされている Operator の新規 Operator API について自動的にラベル付けされるようになりました。クラスター管理者は、この単一 API で CLI を使用し、インストールされた Operator と対話できます。以下は例になります。
$ oc get operators
$ oc describe operator <operator_name>
1.2.11.5.1. クラスターアップグレード前のテクノロジープレビュー Operator API の削除
OpenShift Container Platform 4.5 の Operator API のテクノロジープレビュー機能バージョンを有効にしている場合、OpenShift Container Platform 4.6 にアップグレードする前にこれを無効にする必要があります。これを怠ると、この機能では Cluster Version Operator (CVO) のオーバーライド が必要になるために、クラスターのアップグレードがブロックされます。
前提条件
- テクノロジープレビューの Operator OLM が有効にされた OpenShift Container Platform 4.5 クラスター
手順
Operator API ラベルは OpenShift Container Platform 4.6 の関連するリソースに自動的に適用されるため、以前に手動で適用した
operators.coreos.com/<name>
ラベルを削除する必要があります。以下のコマンドを実行し、
status.components.refs
セクションを確認して、現時点で Operator のラベル付けされているリソースを確認できます。$ oc describe operator <operator_name>
以下は例になります。
$ oc describe operator etcd-test
出力例
... 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 1 Name: etcdclusters.etcd.database.coreos.com 2 ...
関連するすべてのリソースからラベルを削除します。以下は例になります。
$ 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 のカスタムリソース定義 (CRD) を削除します。
$ oc delete crd operators.operators.coreos.com
OLM Operator から
OperatorLifecycleManagerV2=true
機能ゲートの名前を変更します。OLM の CVO 管理を再度有効にします。
$ oc patch clusterversion version \ --type=merge -p \ '{ "spec":{ "overrides":[ { "kind":"Deployment", "name":"olm-operator", "namespace":"openshift-operator-lifecycle-manager", "unmanaged":false, "group":"apps/v1" } ] } }'
Operator リソースが利用できなくなったことを確認します。
$ oc get operators
出力例
error: the server doesn't have a resource type "operators"
OpenShift Container Platform 4.6 へのアップグレードは、この機能によってブロックされなくなるはずです。