声明性Jenkins管道使用现有的Kubernetes Pod模板

时间:2018-04-23 18:51:31

标签: jenkins kubernetes openshift jenkins-pipeline

我在OpenShift集群中使用OpenShift Jenkins图像。此默认Jenkins映像生成一个Jenkins容器,该容器已预先配置为指向我的Kubernetes集群。此外,容器还定义了两个Kubernetes pod模板,一个用于maven,另一个用于nodejs。

enter image description here

enter image description here

我现在要做的是使用声明性管道并引用这些pod。我尝试了以下

ComboBox

但这会产生错误陈述

  

org.codehaus.groovy.control.MultipleCompilationErrorsException:   启动失败:

     

WorkflowScript:4:缺少代理类型所需的参数   " kubernetes":containerTemplate @ line 4,第10列。

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

我可以为声明性管道找到的所有(examples)显示在指定代理时定义的pod模板。

是否可以在声明性管道中重用已定义的模板?

2 个答案:

答案 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