This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.3. 新しい Operator SDK バージョンのプロジェクトのアップグレード
OpenShift Container Platform 4.10 は Operator SDK v1.16.0 をサポートします。ワークステーションに v1.10.1 CLI がすでにインストールされている場合は、最新バージョンをインストール して CLI を v1.16.0 にアップグレードできます。
ただし、既存の Operator プロジェクトが Operator SDK v1.16.1 との互換性を維持するには、v1.10.0 以降に導入された関連する重大な変更に対し、アップグレード手順を実行する必要があります。アップグレードの手順は、以前は v1.10.1 で作成または維持されている Operator プロジェクトのいずれかで手動で実行する必要があります。
5.3.1. Operator SDK v1.16.0 のプロジェクトのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、v1.16.0 との互換性を確保するため、既存の Operator プロジェクトを更新します。
- Operator SDK v1.16.0 は Kubernetes 1.22 をサポートします。
-
非推奨の
v1beta1
API の多くは、sigs.k8s.io/controller-runtime v0.10.0
およびcontroller-gen v0.7
を含む Kubernetes 1.22 で削除されました。 -
カスタムリソース定義 (CRD) または Webhook の
v1beta1
API をスキャフォールディングする必要がある場合には、Kubernetes 1.22 にプロジェクトへの更新は重大な変更になります。
Kubernetes 1.22 で導入された変更の詳細は、Kubernetes 1.22 から削除された API のバンドルマニフェストの検証とベータ版 API が Kubernetes 1.22 から削除について参照してください。
前提条件
- Operator SDK v1.16.0 がインストールされている
- Operator SDKv1.10.1 で作成または保守されている Operator プロジェクト。
手順
config/default/manager_auth_proxy_patch.yaml
とconfig/rbac/auth_proxy_service.yaml
ファイルにprotocol
フィールドを追加します。... ports: - containerPort: 8443 + protocol: TCP name: https
... ports: - containerPort: 8443 + protocol: TCP name: https
Copy to Clipboard Copied! Toggle word wrap Toggle overflow config/manager/manager.yaml
ファイルに以下の変更を加えます。CPU とメモリーのリソース制限を増やします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのコンテナーマネージャーを指定するアノテーションを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Makefile
ファイル内のすべてのターゲットにPHONY
ターゲットを追加します。 Go ベースの Operator プロジェクトの場合には、次の変更を加えます。
-
setup-envtest
バイナリーをインストールします。 go.mod
ファイルを変更して、依存関係を更新します。k8s.io/api v0.22.1 k8s.io/apimachinery v0.22.1 k8s.io/client-go v0.22.1 sigs.k8s.io/controller-runtime v0.10.0
k8s.io/api v0.22.1 k8s.io/apimachinery v0.22.1 k8s.io/client-go v0.22.1 sigs.k8s.io/controller-runtime v0.10.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow go mod tidy
コマンドを実行して、依存関係をダウンロードします。go mod tidy
$ go mod tidy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Makefile
に以下の変更を加えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow make manifest
コマンドを実行して Kubernetes の更新バージョンでマニフェストを生成します。make manifest
$ make manifest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ansible ベースの Operator プロジェクトの場合には、次の変更を加えます。
以下を含めるように
requirements.yml
ファイルを変更します。community.kubernetes
コレクションは、kubernetes.core
コレクションに置き換えます。... - name: kubernetes.core version: "2.2.0" ...
... - name: kubernetes.core version: "2.2.0" ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow operator_sdk.util
ユーティリティーをバージョン0.2.0
から0.3.1
に更新します。... - name: operator_sdk.util version: "0.3.1"
... - name: operator_sdk.util version: "0.3.1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
config/manager/manager.yaml
ファイルでデフォルトのリソース制限を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Operator SDK は、これらの値を妥当なデフォルト設定としてスキャフォールディングします。Operator の作成者は、プロジェクトの要件に基づいてリソース制限を設定および最適化する必要があります。
オプション:
make run
コマンドを使用して Ansible ベースの Operator をローカルで実行する場合は、次の変更を加えます。Makefile
ファイルで実行ターゲットを変更します。ANSIBLE_ROLES_PATH="$(ANSIBLE_ROLES_PATH):$(shell pwd)/roles" $(ANSIBLE_OPERATOR) run
ANSIBLE_ROLES_PATH="$(ANSIBLE_ROLES_PATH):$(shell pwd)/roles" $(ANSIBLE_OPERATOR) run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-runner
のローカルバージョンを 2.0.2 以降に更新します。重要バージョン 2.0 の時点で、
ansible-runner
ツールには、以前のバージョンと互換性のないコマンド署名の変更が含まれています。