Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第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
1
これが指定されていない場合はデフォルトで true に設定されます。false が指定されている場合は、いずれのテンプレートもインスタンス化されません。
2
インスタンス化されるテンプレートが含まれる namespace。
3
インスタンス化されるテンプレートの名前。
4
インスタンス化の実行時にテンプレートによって作成されるサービスの名前。
5
インスタンス化の実行中にテンプレートに渡すオプションの値。

Pipeline ビルド設定の作成時に、OpenShift Container Platform は serviceName に一致するサービスを検索します。つまり、serviceName はプロジェクト内で一意であるように選択される必要があります。サービスが見つからない場合、OpenShift Container Platform は jenkinsPipelineConfig テンプレートをインスタンス化します。この方法が適さない場合 (たとえば、OpenShift Container Platform の外部にある Jenkins サーバーを使用する場合)、ユーザーのロールに応じていくつかのことを実行できます。

  • クラスター管理者の場合は、単に autoProvisionEnabledfalse に設定します。これにより、クラスター全体で自動プロビジョニングが無効にされます。
  • 非特権ユーザーである場合は、OpenShift Container Platform で使用するサービスを作成する必要があります。サービス名は jenkinsPipelineConfigserviceName のクラスター設定値と一致している必要があります。デフォルト値は 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 プラグインにコミット情報が渡されます。

このプラグインの詳細については、以下を参照してください。