2.3.5.3. Jenkins を使用した反復可能なプロモーションプロセス
OpenShift Container Platform の Jenkins Docker イメージ で定義された OpenShift サンプル ジョブは、Jenkins 構成ベースの OpenShift Container Platform でのイメージのプロモーションの例です。このサンプルのセットアップは OpenShift Origin ソースリポジトリー にあります。
このサンプルには以下が含まれます。
- CI/CD エンジンとして Jenkins の使用。
-
OpenShift Pipeline plug-in for Jenkins の使用。このプラグインでは、Jenkins Freestyle および DSL Job ステップとしてパッケージされた OpenShift Container Platform の
oc
CLI が提供する機能サブセットを提供します。oc
バイナリーは、OpenShift Container Platform 用の Jenkins Docker イメージにも含まれており、Jenkins ジョブで OpenShift Container Platform と対話するために使用することも可能です。 - OpenShift Container Platform が提供する Jenkins のテンプレート。一時ストレージおよび永続ストレージの両方のテンプレートがあります。
-
サンプルアプリケーション: OpenShift Origin ソースリポジトリー で定義されます。 このアプリケーションは
ImageStreams
、ImageChangeTriggers
、ImageStreamTags
、BuildConfigs
およびプロモーションパイプラインの各種ステージに対応した別個のDeploymentConfigs
とServices
を利用します。
以下では、OpenShift のサンプルジョブを詳細に検証していきます。
-
最初のステップ は、
oc scale dc frontend --replicas=0
の呼び出しと同じです。この手順は、実行されている可能性のあるアプリケーションイメージの以前のバージョンを終了させるために実行されます。 -
2 番目のステップ は
oc start-build frontend
の呼び出しと同じです。 -
3 番目のステップ は
oc rollout latest dc/frontend
の呼び出しと同じです。 - 4 番目のステップ は、このサンプルの「テスト」を行います。このステップでは、アプリケーションに関連するサービスがネットワークからアクセス可能であることを確認します。背後で、OpenShift Container Platform サービスに関連する IP アドレスやポートにソケット接続を試みます。当然のこととして別のテストを追加することも可能です (OpenShift Pipepline plug-in ステップを使用しない場合は、Jenkins Shell ステップを使用して、OS レベルのコマンドとスクリプトを使用してアプリケーションをテストします)。
-
5 番目のステップ は、アプリケーションがテストに合格したことを前提としているため、イメージは「Ready (使用準備完了)」としてマークされます。このステップでは、新規の prod タグが 最新の イメージをベースにしたアプリケーションイメージ用に作成されます。フロントエンド の
DeploymentConfig
でそのタグに対してImageChangeTrigger
が 定義されている場合には、対応する「実稼働」デプロイメントが起動されます。 - 6 番目と最後のステップ は検証のステップで、プラグインは OpenShift Container Platform が「実稼働」デプロイメントの必要な数のレプリカを起動したことを確認します。