1

Jenkins ver。 2.60.1(kubernetesのコンテナで動く)Jenkins kubernetes Plugin環境変数を渡していないプラグイン

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 私はポッドレベルとコンテナレベルを試しました。

私が唯一、以下の環境がvarsの取得作成したポッド説明:

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' _を実行することができますか(値なしのラベルの構文をチェックするか、もちろんポッドの名前を取得する必要があります)_ podTemplateは実生活に適用されていますか?私はまた、スーパー、スーパー、超疑いのないk8sサービスenv-varsが存在しないことを知っています( 'KUBERNETES_SERVICE_HOST'、' KUBERNETES_SERVICE_PORT'など) –

+0

Matthewに感謝します。ここに出力を参照してください https://pastebin.com/vM5Pkzhc –

答えて

1

kubernetes-pluginを0.12(29/07/2017)にアップグレードし、ジェンキンスを再起動すると問題が解決しました。

0

私は少し推測しているが、私はpodTemplateenvVarsが完全に機能するとは思わないが。あなたのように、私はpodTemplateで運がなかったが、envVarscontainerTemplateレベルで使っても問題はなかった。簡単な修正は代わりに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

ありがとう、まだ運が私は恐れて、同じ問題です。 –