第28章 Pipeline 実行の設定
28.1. 概要
ユーザーが Pipeline ビルドストラテジーを使用して初めてビルド設定を作成する際に、OpenShift Container Platform は jenkins-ephemeral
という名前のテンプレートを openshift
namespace で検索し、ユーザーのプロジェクト内でそれをインスタンス化します。OpenShift Container Platform に同梱される jenkins-ephemeral
テンプレートは、インスタンス化の実行時に以下を作成します。
- OpenShift Container Platform の公式の Jenkins イメージを使用した Jenkins のデプロイメント設定
- Jenkins デプロイメントにアクセスするためのサービスとルート
- 新規の Jenkins サービスアカウント
- サービスアカウントにプロジェクトへの編集アクセスを付与する RoleBinding
クラスター管理者は、組み込みテンプレートのコンテンツの変更、またはクラスターを異なるテンプレート場所にポイントするためのクラスター設定の編集によって作成されるものを制御できます。
デフォルトテンプレートのコンテンツを変更するには、以下を実行します。
$ oc edit template jenkins-ephemeral -n openshift
Jenkins 用に永続ストレージを使用する jenkins-persistent
テンプレートなどの異なるテンプレートを使用するには、以下をマスター設定ファイルに追加します。
jenkinsPipelineConfig: autoProvisionEnabled: true 1 templateNamespace: openshift 2 templateName: jenkins-persistent 3 serviceName: jenkins-persistent-svc 4 parameters: 5 key1: value1 key2: value2
Pipeline ビルド設定の作成時に、OpenShift Container Platform は serviceName
に一致するサービスを検索します。つまり、serviceName
はプロジェクト内で一意であるように選択される必要があります。サービスが見つからない場合、OpenShift Container Platform は jenkinsPipelineConfig
テンプレートをインスタンス化します。この方法が適さない場合 (たとえば、OpenShift Container Platform の外部にある Jenkins サーバーを使用する場合)、ユーザーのロールに応じていくつかのことを実行できます。
-
クラスター管理者の場合は、単に
autoProvisionEnabled
をfalse
に設定します。これにより、クラスター全体で自動プロビジョニングが無効にされます。 -
非特権ユーザーである場合は、OpenShift Container Platform で使用するサービスを作成する必要があります。サービス名は
jenkinsPipelineConfig
のserviceName
のクラスター設定値と一致している必要があります。デフォルト値はjenkins
です。プロジェクトの外部で Jenkins サーバーを実行しているために自動プロビジョニングを無効にしている場合は、この新規サービスを既存の Jenkins サーバーにポイントすることが推奨されます。「外部サービスの統合」を参照してください。
後者のオプションは、選択したプロジェクト内でのみ自動プロビジョニングを無効にするためにも使用できます。
28.2. OpenShift Jenkins Client プラグイン
OpenShift Jenkins Client プラグインは、OpenShift API Server との高度な対話を実現するために、読み取り可能かつ簡潔で、包括的で Fluent (流れるような) な Jenkins パイプライン構文を提供することを目的とした Jenkins プラグインです。このプラグインは、スクリプトを実行しているノードで使用できる必要がある OpenShift コマンドラインツール (oc
) を活用します。
プラグインのインストールと設定の詳細については、以下のリンクから公式ドキュメントを参照し、確認してください。
このプラグインの使用に関する情報を必要としている開発者の場合は、「OpenShift Pipeline の概要」を参照してください。
28.3. OpenShift Jenkins の同期プラグイン
この Jenkins プラグインは、OpenShift BuildConfig および Build オブジェクトと Jenkins ジョブおよびビルドとの同期を維持します。
OpenShift Jenkins 同期プラグインは以下を実行します。
- Jenkins での動的なジョブ/実行の作成。
- ImageStreams、ImageStreamTag、または ConfigMap からのスレーブ Pod テンプレートの動的作成。
- 環境変数の挿入。
- OpenShift Web コンソールでの Pipeline の可視化。
- Jenkins Git プラグインとの統合。これにより、OpenShift ビルドから Jenkins Git プラグインにコミット情報が渡されます。
このプラグインの詳細については、以下を参照してください。