首页 > 解决方案 > 如何使用 Jenkins kubernetes 插件模板化我的 Pod 定义?

问题描述

我正在使用 Jenkins kubernetes 插件来运行管道构建:

pipeline {
  agent {
    kubernetes {
      label 'kind'
      defaultContainer 'jnlp'
      yaml """
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: dind
... 

我想用 0 到 5 之间的整数对 yaml 的特定字段进行模板化,该整数以循环方式旋转(即第一个构建模板为 0,第二个构建模板为 1 等,并在 4 后再次返回到 0) .

我怎样才能做到这一点?

标签: jenkinskubernetes

解决方案


您可以使用 podTemplates 下一个代码来自https://github.com/jenkinsci/kubernetes-plugin,您可以使用变量来准备您需要的任何类型的 pod。如果这不是您所需要的,您能否提供一个示例来说明您正在尝试做的事情?

def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, containers: [
  containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
  containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
]) {

node(label) {
    stage('Get a Maven project') {
        git 'https://github.com/jenkinsci/kubernetes-plugin.git'
        container('maven') {
            stage('Build a Maven project') {
                sh 'mvn -B clean install'
            }
        }
    }

    stage('Get a Golang project') {
        git url: 'https://github.com/hashicorp/terraform.git'
        container('golang') {
            stage('Build a Go project') {
                sh """
                mkdir -p /go/src/github.com/hashicorp
                ln -s `pwd` /go/src/github.com/hashicorp/terraform
                cd /go/src/github.com/hashicorp/terraform && make core-dev
                """
            }
        }
    }

}

}


推荐阅读