OpenShiftクラスター内でOpenShiftJenkinsイメージを使用しています。このデフォルトのJenkinsイメージは、Kubernetesクラスターを指すように事前構成されたJenkinsコンテナーになります。さらに、コンテナには2つのKubernetesポッドテンプレートが定義されています。1つはmaven用、もう1つはnodejs用です。
私が今やりたいのは、宣言型パイプラインを使用して、これらのポッドを参照することです。私は以下を試しました
agent {
kubernetes {
//cloud 'kubernetes'
label 'maven'
}
}
しかし、それは次のようにエラーを出します
org.codehaus.groovy.control.MultipleCompilationErrorsException:起動に失敗しました:
WorkflowScript:4:エージェントタイプ「kubernetes」に必要なパラメーターがありません:containerTemplate @ 4行目、10列目。
kubernetes { ^
宣言型パイプラインで見つけることができるすべての( examples )は、エージェントが指定されたときに定義されているポッドテンプレートを示しています。
宣言型パイプラインで定義済みのテンプレートを再利用することは可能ですか?
これは、事前定義されたポッドテンプレートを使用した例です。
pipeline {
agent {
label "maven"
}
stages {
stage('Run maven') {
steps {
sh 'mvn -version'
}
}
}
}
元のパイプライン定義は事実上、まったく新しいポッドテンプレートを定義していたため、containerTeamplates
パラメーターの要件を強制するエラーが発生しました。既存のテンプレートを使用する場合は、agent
ブロックでラベルを指定するだけです。
実際、エラーはKubernetesプラグインの不正なバージョンの使用に関連しています。--で説明されているように、少なくともバージョン1.6が必要です。 wikiページ 。