8.2. Kubernetes リソースのトリガー
Deployments および StatefulSet などの Kubernetes リソースが新しいイメージバージョンをシームレスに消費できるようにするには、Red Hat OpenShift Service on AWS でイメージストリームの変更トリガーを設定します。これにより、関連付けられたイメージストリームが変更を検出すると、アプリケーションのデプロイメントが自動的に更新されます。
API 定義の一部としてトリガーを制御するためのフィールドセットを含むデプロイメントおよびビルド設定とは異なり、Kubernetes リソースにはトリガー用のフィールドがありません。代わりに、Red Hat OpenShift Service on AWS のアノテーションを使用してトリガーを要求できます。
アノテーションは以下のように定義されます。
各項目の説明:
kind-
トリガーするリソースを指定します。また、
ImageStreamTagの値が必要です。 name- イメージストリームタグの名前を指定します。
namespace- オブジェクトの namespace を指定します。このフィールドは任意です。
fieldPath-
変更する JSON パスを指定します。このフィールドは制限され、ID またはインデックスでコンテナーに正確に一致する JSON パス式のみを受け入れます。Pod の場合、JSON パスは
spec.containers[?(@.name='web')].imageです。 paused-
トリガーが一時停止されるかどうかを指定します。このフィールドはオプションであり、デフォルト値は
falseです。このトリガーを一時的に無効にするには、値をtrueに設定します。
コア Kubernetes リソースの 1 つに Pod テンプレートとこのアノテーションの両方が含まれている場合、Red Hat OpenShift Service on AWS は、トリガーによって参照されるイメージストリームタグに現在関連付けられているイメージを使用してオブジェクトを更新しようとします。この更新は、指定の fieldPath に対して実行されます。
Pod テンプレートおよびアノテーションの両方が含まれるコア Kubernetes リソースの例には、以下が含まれます。
-
CronJobs -
Deployments -
StatefulSets -
DaemonSets -
Jobs -
ReplicationControllers -
Pods