Jenkins Pipeline使用podTemplate将凭证传递到容器中去

遇到一个问题,起因是创建了一个Jenkins Text凭证,想在Pipeline中使用
通过查阅资料发现可以通过如下方式获得凭证

pipeline {
    agent any
    environment {
        my_account = credentials('my_credential')
    }
 }

我使用的是podTemplate,这种配置方式并没有生效
通过查阅podTemplate的相关配置语法,未能找到有效的信息
语法链接: https://www.jenkins.io/zh/doc/pipeline/steps/kubernetes/
已知的是可以通过envVars完成容器环境变量的传递

除使用environment自带的方法credentials()外,又找到了另一种使用方式

withCredentials([string(credentialsId: "my_credential", variable: "MY_CREDENTIAL")]) {
    // do something with $FETCH_TOKEN
}

最终的使用方式如下,忽略部分pipeline

def my_credential = null
withCredentials([string(credentialsId: "my_credential", variable: "MY_CREDENTIAL")]) {
    my_credential = "$MY_CREDENTIAL"
}
podTemplate(
        envVars: [
            envVar(key: 'MY_CREDENTIAL', value: my_credential)
        ]
)

自己瞎研究的方式,最终实测该方案可行,如果使用错误或有其他更好的使用方式,希望指出修改

你可能感兴趣的:(jenkins,kubernetes)