2017-07-28 117 views
1

Jenkins ver。 2.60.1(在kubernetes上運行容器)Jenkins 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級別和容器級別。

當我描述生成莢我只得到以下環境瓦爾:

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                         
+0

你能夠運行'kubectl get -o yaml pod -l mypod' _(我必須檢查沒有值的標籤的語法,或者當然你可以得到pod的名稱)_ podTemplate在現實生活中應用?我也發現它超級,超級,超級可疑沒有任何k8s服務env-vars存在('KUBERNETES_SERVICE_HOST','KUBERNETES_SERVICE_PORT'等) –

+0

謝謝馬修。請看這裏的輸出 https://pastebin.com/vM5Pkzhc –

回答

1

將kubernetes-plugin升級到0.12(29/07/2017)並重新啓動jenkins修復了問題!

0

我猜了一點,但我不認爲envVarspodTemplate功能齊全。和你一樣,我還沒有碰到podTemplate,但我在使用envVars,containerTemplate時沒有問題。簡單的解決辦法是在那裏添加您的envVars

podTemplate(
    label: 'mypod', 
    volumes: [ 
    persistentVolumeClaim(claimName: 'nfs-maven', mountPath: '/mnt/', readOnly: false)], 
    containers: [ 
    containerTemplate(
     name: 'golang', 
     image: 'golang', 
     ttyEnabled: true, 
     command: 'cat', 
     envVars: [containerEnvVar(key: 'FOO', value: 'BAR')] 
    ) 
    ] 
) 
{ 
    node('mypod') { 
    stage('test env') { 

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

謝謝,還是沒有運氣我害怕,同樣的問題。 –