5.6.4. プロジェクトを新しい Operator SDK バージョン用に更新する
OpenShift Container Platform 4.17 は Operator SDK 1.36.1 をサポートします。ワークステーションに 1.31.0 CLI がすでにインストールされている場合は、最新バージョンをインストール して CLI を 1.36.1 に更新できます。
Operator プロジェクトの関連スキャフォールディングおよびテストツールなど、Red Hat がサポートするバージョンの Operator SDK CLI ツールは非推奨となり、OpenShift Container Platform の今後のリリースで削除される予定です。Red Hat は、現在のリリースライフサイクル中にこの機能のバグ修正とサポートを提供しますが、この機能は今後、機能拡張の提供はなく、OpenShift Container Platform リリースから削除されます。
新しい Operator プロジェクトを作成する場合、Red Hat がサポートするバージョンの Operator SDK は推奨されません。既存の Operator プロジェクトを使用する Operator 作成者は、OpenShift Container Platform 4.17 でリリースされるバージョンの Operator SDK CLI ツールを使用してプロジェクトを維持し、OpenShift Container Platform の新しいバージョンを対象とする Operator リリースを作成できます。
Operator プロジェクトの次の関連ベースイメージは 非推奨 ではありません。これらのベースイメージのランタイム機能と設定 API は、バグ修正と CVE への対応のために引き続きサポートされます。
- Ansible ベースの Operator プロジェクトのベースイメージ
- Helm ベースの Operator プロジェクトのベースイメージ
OpenShift Container Platform で非推奨となったか、削除された主な機能の最新の一覧は、OpenShift Container Platform リリースノートの 非推奨および削除された機能 セクションを参照してください。
サポートされていない、コミュニティーによって管理されているバージョンの Operator SDK は、Operator SDK (Operator Framework) を参照してください。
ただし、既存の Operator プロジェクトと Operator SDK 1.36.1 との互換性を確保するには、1.31.0 以降に導入された関連する重大な変更に対応するために、更新手順を実行する必要があります。更新手順は、以前に 1.31.0 で作成または保守していた Operator プロジェクトで、手動で実行する必要があります。
5.6.4.1. Java ベースの Operator プロジェクトを Operator SDK 1.36.1 用に更新する リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、1.36.1 との互換性を確保するために、既存の Java ベースの Operator プロジェクトを更新します。
前提条件
- Operator SDK 1.36.1 がインストールされている。
- Operator SDK 1.31.0 で作成または保守されている Operator プロジェクトがある。
手順
次の例に示すように、Operator プロジェクトの Makefile を編集して、Operator SDK バージョンを
v1.36.1-ocpに更新します。Makefile の例
# Set the Operator SDK version to use. By default, what is installed on the system is used. # This is useful for CI or a project to utilize a specific version of the operator-sdk toolkit. OPERATOR_SDK_VERSION ?= v1.36.1-ocpRed Hat Enterprise Linux (RHEL) 9 ベースのイメージを使用するように
kube-rbac-proxyコンテナーを更新します。次のファイルで
kube-rbac-proxyコンテナーのエントリーを見つけます。-
config/default/manager_auth_proxy_patch.yaml -
Operator プロジェクトの
bundle/manifests/<operator_name>.clusterserviceversion.yaml(チュートリアルのmemcached-operator.clusterserviceversion.yamlなど)
-
プル仕様のイメージ名を
ose-kube-rbac-proxyからose-kube-rbac-proxy-rhel9に更新し、タグをv4.17に更新します。v4.17イメージタグを使用したose-kube-rbac-proxy-rhel9プル仕様の例# ... containers: - name: kube-rbac-proxy image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9:v4.17 # ...
-
kustomize/v2プラグインは、現在 stable であり、go/v4、ansible/v1、helm/v1、hybrid/v1-alphaプラグインを使用するときにプラグインチェーンで使用されるデフォルトのバージョンです。このデフォルトのスキャフォールドの詳細は、Kubebuilder ドキュメントの Kustomize v2 を参照してください。 Operator プロジェクトでマルチプラットフォームビルドまたはマルチアーキテクチャービルドを使用する場合は、プロジェクト Makefile 内の既存の
docker-buildxターゲットを次の定義に置き換えます。Makefile の例
docker-buildx: ## Build and push the Docker image for the manager for multi-platform support - docker buildx create --name project-v3-builder docker buildx use project-v3-builder - docker buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile . - docker buildx rm project-v3-builderOperator プロジェクトの Kubernetes バージョンを、1.29 を使用するようにアップグレードする必要があります。プロジェクト構造、Makefile、
go.modファイルに次の変更を加える必要があります。重要go/v3プラグインは Kubebuilder によって非推奨化が進められています。そのため、Operator SDK も今後のリリースでgo/v4に移行します。go.modファイルを更新して、依存関係をアップグレードします。k8s.io/api v0.29.2 k8s.io/apimachinery v0.29.2 k8s.io/client-go v0.29.2 sigs.k8s.io/controller-runtime v0.17.3次のコマンドを実行して、アップグレードした依存関係をダウンロードします。
$ go mod tidy