Jenkins kubernetes插件没有使用Pipeline传递环境变量

时间:2017-07-28 11:50:33

标签: jenkins environment-variables kubernetes jenkins-pipeline

Jenkins ver。 2.60.1(在kubernetes的容器中运行)

Kubernetes Plugin ver。 0.11(https://github.com/jenkinsci/kubernetes-plugin

管道测试:

podTemplate(
  label: 'mypod',
  volumes: [
    persistentVolumeClaim(claimName: 'nfs-maven', mountPath: '/mnt/', readOnly: false)],
    envVars: [
      containerEnvVar(key: 'FOO', value: 'BAR'),
    ],
  containers: [
    containerTemplate(name: 'golang',
    image: 'golang',

    ttyEnabled: true, 
    command: 'cat',

    )]
)
{
  node('mypod') {
    stage('test env') {

        container('golang') {
            stage('build') {
                sh 'echo $FOO'
                sh 'sleep 3600'
            }
        }
    }
  }
}

vars不会传递到容器中。 回声没有回音。 echo $ FOO或echo \ $ FOO 我已尝试过pod级别和容器级别。

当我描述创建的pod时,我只获得以下环境变量:

Environment:                                                                                                                               
  JENKINS_LOCATION_URL:     http://ldn1-kube1:31000/                                                                                       
  JENKINS_SECRET:           107cb696a8792f998fd41b6ccacf833ea74941fc9a95c39c4b2a1cde4c008b35                                               
  JENKINS_JNLP_URL:         http://10.233.60.248:8080/computer/kubernetes-57beb710bfb44cea8f964d63049b2942-355760c790d6b/slave-agent.jnlp  
  JENKINS_TUNNEL:           10.233.60.248:50000                                                                                            
  JENKINS_NAME:             kubernetes-57beb710bfb44cea8f964d63049b2942-355760c790d6b                                                      
  JENKINS_URL:              http://10.233.60.248:8080                                                                                      
  HOME:                     /home/jenkins                                                                                                  

2 个答案:

答案 0 :(得分:2)

将kubernetes-plugin升级到0.12(29/07/2017)并重新启动jenkins解决了这个问题!

答案 1 :(得分:0)

我猜了一下,但我不认为envVars中的podTemplate功能齐全。和你一样,我对podTemplate没有好运,但我在envVars级使用containerTemplate时没有问题。简单的解决方法是在{.1}}处添加。

envVars