Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第32章 パイプライン実行の設定

32.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 サーバーにポイントすることが推奨されます。外部サービスの統合 を参照してください。

後者のオプションは、選択したプロジェクト内でのみ自動プロビジョニングを無効にするためにも使用できます。