声明式 Jenkins Pipeline 使用现有的 Kubernetes Pod 模板
回答问题 我在 OpenShift 集群中使用 OpenShift Jenkins 映像。此默认 Jenkins 映像会生成一个预配置为指向我的 Kubernetes 集群的 Jenkins 容器。此外,该容器还定义了两个 Kubernetes pod 模板,一个用于 maven,一个用于 nodejs。 我现在想做的是使用声明性管道并引用这些 pod。我尝试了以下 agent { kuberne
·
回答问题
我在 OpenShift 集群中使用 OpenShift Jenkins 映像。此默认 Jenkins 映像会生成一个预配置为指向我的 Kubernetes 集群的 Jenkins 容器。此外,该容器还定义了两个 Kubernetes pod 模板,一个用于 maven,一个用于 nodejs。
我现在想做的是使用声明性管道并引用这些 pod。我尝试了以下
agent {
kubernetes {
//cloud 'kubernetes'
label 'maven'
}
}
但这给出了一个错误说明
org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:
WorkflowScript:4:缺少代理类型“kubernetes”的必需参数:containerTemplate @ 第 4 行,第 10 列。
Kubernetes {
^
我可以为声明性管道找到的所有(示例)都显示了在指定代理时定义的 pod 模板。
是否可以在声明性管道中重用已定义的模板?
Answers
这是一个使用预定义 pod 模板的示例。
pipeline {
agent {
label "maven"
}
stages {
stage('Run maven') {
steps {
sh 'mvn -version'
}
}
}
}
您最初的管道定义实际上是定义了一个全新的 pod 模板,因此执行containerTeamplates
参数要求时出错。使用现有模板时,您只需在agent
块中指定标签即可。
更多推荐
已为社区贡献20439条内容
所有评论(0)