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.07.8.07.8.1、または 7.8.2 を指定し、Operator はその指定されたバージョンを使用します。
  • spec.upgrades.enabledtrue に設定されて いない 場合や、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

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_781
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790

IBM Z 上の OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_781_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_s390x

IBM Power Systems 上の OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_781_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_ppc64le

各環境変数の値は、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

そのため、AMQ Broker のバージョンとコンテナープラットフォームをベースとするため、Operator は該当する環境変数名を決定します。Operator はブローカーコンテナーの起動時に対応するイメージ値を使用します。

注記

operator.yaml ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。