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
そのため、AMQ Broker のバージョンとコンテナープラットフォームをベースとするため、Operator は該当する環境変数名を決定します。Operator はブローカーコンテナーの起動時に対応するイメージ値を使用します。
operator.yaml
ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。