web-dev-qa-db-ja.com

宣言型Jenkinsパイプラインは既存のKubernetesポッドテンプレートを使用します

OpenShiftクラスター内でOpenShiftJenkinsイメージを使用しています。このデフォルトのJenkinsイメージは、Kubernetesクラスターを指すように事前構成されたJenkinsコンテナーになります。さらに、コンテナには2つのKubernetesポッドテンプレートが定義されています。1つはmaven用、もう1つはnodejs用です。

enter image description here

enter image description here

私が今やりたいのは、宣言型パイプラインを使用して、これらのポッドを参照することです。私は以下を試しました

  agent {
     kubernetes {
     //cloud 'kubernetes'
     label 'maven'
     }
  }

しかし、それは次のようにエラーを出します

org.codehaus.groovy.control.MultipleCompilationErrorsException:起動に失敗しました:

WorkflowScript:4:エージェントタイプ「kubernetes」に必要なパラメーターがありません:containerTemplate @ 4行目、10列目。

        kubernetes {

        ^

宣言型パイプラインで見つけることができるすべての( examples )は、エージェントが指定されたときに定義されているポッドテンプレートを示しています。

宣言型パイプラインで定義済みのテンプレートを再利用することは可能ですか?

5
ssc327

これは、事前定義されたポッドテンプレートを使用した例です。

pipeline {
  agent {
      label "maven"
  }
  stages {
    stage('Run maven') {
      steps {
        sh 'mvn -version'
      }
    }
  }
}

元のパイプライン定義は事実上、まったく新しいポッドテンプレートを定義していたため、containerTeamplatesパラメーターの要件を強制するエラーが発生しました。既存のテンプレートを使用する場合は、agentブロックでラベルを指定するだけです。

4
abn

実際、エラーはKubernetesプラグインの不正なバージョンの使用に関連しています。--で説明されているように、少なくともバージョン1.6が必要です。 wikiページ

1
andolsi zied