2.4. Operator によるコンテナーイメージの選択方法
少なくとも バージョン 7.9.3-opr-3 の Operator に基づいてブローカーデプロイメントのカスタムリソース(CR)インスタンスを作成する場合、CR でブローカーまた は Init コンテナーイメージ名を明示的に指定する必要はありません。デフォルトで、CR をデプロイし、コンテナーイメージの値を明示的に指定しない場合、Operator は使用する適切なコンテナーイメージを自動的に選択します。
OpenShift コマンドラインインターフェースを使用して Operator をインストールする場合、Operator インストールアーカイブには broker_activemqartemis_cr.yaml というサンプル CR ファイルが含まれます。サンプル CR では、spec.deploymentPlan.image プロパティーが含まれ、placeholder のデフォルト値に設定されます。この値は、Operator が CR をデプロイするまでブローカーコンテナーイメージを選択しないことを示します。
Init コンテナーイメージを指定する spec.deploymentPlan.initImage プロパティーは、broker_activemqartemis_cr.yaml サンプル CR ファイルには含まれません。spec.deploymentPlan.initImage プロパティーを明示的に CR に追加し、値を指定する場合、Operator は CR のデプロイ時に使用する適切な組み込み Init コンテナーイメージを選択します。
このセクションでは、Operator がこのイメージを選択する仕組みについて説明します。
ブローカーおよび init コンテナーイメージを選択するには、Operator はまず、イメージが対応する AMQ Broker バージョンを判別します。Operator は以下のようにバージョンを判別します。
-
メイン CR の
spec.upgrades.enabledプロパティーがすでにtrueに設定され、spec.versionプロパティーが7.7.0、7.8.0、7.8.1、または7.8.2を指定し、Operator はその指定されたバージョンを使用します。 -
spec.upgrades.enabledがtrueに設定されて いない 場合や、spec.versionが 7.7.0よりも前の AMQ Broker バージョンに設定されている場合、Operator は 最新 バージョンの AMQ Broker(7.9.3)を使用します。
その後、Operator はコンテナープラットフォームを検出します。AMQ Broker Operator は以下のコンテナープラットフォームで実行できます。
- OpenShift Container Platform (x86_64)
- OpenShift Container Platform on IBM Z (s390x)
- OpenShift Container Platform on IBM Power Systems (ppc64le)
AMQ Broker およびコンテナープラットフォームのバージョンに基づいて、Operator は operator.yaml 設定ファイルで環境変数の 2 セットを参照します。以下のサブセクションで説明されているように、環境変数のセットは、さまざまなバージョンの AMQ Broker のブローカーおよび Init コンテナーイメージを指定します。
2.4.1. ブローカーコンテナーイメージの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
ブローカーコンテナーイメージの operator.yaml 設定ファイルに含まれる環境変数には、以下の命名規則があります。
- OpenShift Container Platform
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier> - IBM Z での OpenShift Container Platform
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_s390x - OpenShift Container Platform on IBM Power Systems
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_ppc64le
サポート対象のコンテナープラットフォームと特定の AMQ Broker バージョンの環境変数名を以下の表に示します。
| コンテナープラットフォーム | 環境変数名 |
|---|---|
| OpenShift Container Platform |
|
| IBM Z 上の OpenShift Container Platform |
|
| IBM Power Systems 上の OpenShift Container Platform |
|
各環境変数の値は、Red Hat から利用できるブローカーコンテナーイメージを指定します。以下に例を示します。
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790 #value: registry.redhat.io/amq7/amq-broker-rhel8:7.9 value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:979b59325aa0f34eb05625201beba53fccbb83bd5eb80a89dcb5261ae358138f
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790
#value: registry.redhat.io/amq7/amq-broker-rhel8:7.9
value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:979b59325aa0f34eb05625201beba53fccbb83bd5eb80a89dcb5261ae358138f
そのため、AMQ Broker のバージョンとコンテナープラットフォームをベースとするため、Operator は該当する環境変数名を決定します。Operator はブローカーコンテナーの起動時に対応するイメージ値を使用します。
operator.yaml ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。