我在OpenShift集群中使用OpenShift Jenkins图像。此默认Jenkins映像生成一个Jenkins容器,该容器已预先配置为指向我的Kubernetes集群。此外,容器还定义了两个Kubernetes pod模板,一个用于maven,另一个用于nodejs。
我现在要做的是使用声明性管道并引用这些pod。我尝试了以下
ComboBox
但这会产生错误陈述
org.codehaus.groovy.control.MultipleCompilationErrorsException: 启动失败:
WorkflowScript:4:缺少代理类型所需的参数 " kubernetes":containerTemplate @ line 4,第10列。
agent { kubernetes { //cloud 'kubernetes' label 'maven' } }
我可以为声明性管道找到的所有(examples)显示在指定代理时定义的pod模板。
是否可以在声明性管道中重用已定义的模板?
答案 0 :(得分:4)
以下是使用预定义pod模板的示例。
pipeline {
agent {
label "maven"
}
stages {
stage('Run maven') {
steps {
sh 'mvn -version'
}
}
}
}
您的原始管道定义实际上定义了一个全新的pod模板,因此错误强制要求containerTeamplates
参数。使用现有模板时,您只需在agent
块中指定标签。
答案 1 :(得分:0)
实际上,该错误与使用错误版本的Kubernetes插件有关,您至少需要wiki page中所述的版本 1.6 。