10.7.7. テンプレートの準備ができるまで待機
テンプレートの作成者は、テンプレート内の特定のオブジェクトがサービスカタログ、Template Service Broker または TemplateInstance API によるテンプレートのインスタンス化が完了したとされるまで待機する必要があるかを指定できます。
この機能を使用するには、テンプレート内の Build
、BuildConfig
、Deployment
、DeploymentConfig
、Job
または StatefulSet
のオブジェクト 1 つ以上に、次のアノテーションでマークを付けてください。
"template.alpha.openshift.io/wait-for-ready": "true"
テンプレートのインスタンス化は、アノテーションのマークが付けられたすべてのオブジェクトが準備できたと報告されるまで、完了しません。同様に、アノテーションが付けられたオブジェクトが失敗したと報告されるか、固定タイムアウトである 1 時間以内にテンプレートの準備が整わなかった場合に、テンプレートのインスタンス化は失敗します。
インスタンス化の目的で、各オブジェクトの種類の準備状態および失敗は以下のように定義されます。
種類 | 準備状態 (Readines) | 失敗 (Failure) |
---|---|---|
| オブジェクトが Complete (完了) フェーズを報告する | オブジェクトが Canceled (キャンセル)、Error (エラー)、または Failed (失敗) を報告する |
| 関連付けられた最新のビルドオブジェクトが Complete (完了) フェーズを報告する | 関連付けられた最新のビルドオブジェクトが Canceled (キャンセル)、Error (エラー)、または Failed (失敗) を報告する |
| オブジェクトが新しい ReplicaSet やデプロイメントが利用可能であることを報告する (これはオブジェクトに定義された readiness プローブに従います) | オブジェクトで、Progressing (進捗中) の状態が false であると報告される |
| オブジェクトが新しい ReplicaController やデプロイメントが利用可能であると報告する (これはオブジェクトに定義された readiness プローブに従います) | オブジェクトで、Progressing (進捗中) の状態が false であると報告される |
| オブジェクトが完了 (completion) を報告する | オブジェクトが 1 つ以上の失敗が発生したことを報告する |
| オブジェクトがすべてのレプリカが準備状態にあることを報告する (これはオブジェクトに定義された readiness プローブに従います) | 該当なし |
以下は、テンプレートサンプルを一部抜粋したものです。この例では、wait-for-ready
アノテーションが使用されています。他のサンプルは、OpenShift クイックスタートテンプレートにあります。
kind: Template apiVersion: v1 metadata: name: my-template objects: - kind: BuildConfig apiVersion: v1 metadata: name: ... annotations: # wait-for-ready used on BuildConfig ensures that template instantiation # will fail immediately if build fails template.alpha.openshift.io/wait-for-ready: "true" spec: ... - kind: DeploymentConfig apiVersion: v1 metadata: name: ... annotations: template.alpha.openshift.io/wait-for-ready: "true" spec: ... - kind: Service apiVersion: v1 metadata: name: ... spec: ...