gpt4 book ai didi

azure - Helm | Jenkins Azure keyvault secret 以屏蔽形式传递(********),因此它在 helm 命令中抛出无值异常

转载 作者:行者123 更新时间:2023-12-03 02:18:44 25 4
gpt4 key购买 nike

我正在尝试使用 helm 图表将 java 微服务部署到 azure kubernetes 中,我的应用程序几乎没有像数据库用户名和密码这样的 secret 。我将我的 secret 存储在 azure keyvault 中。我正在尝试使用 Azure Key Vault 插件和服务主体来获取 secret 。插件中的测试连接已成功,我可以打印我的 secret ,如下所述。但是,在将 secret 传递到 helm 命令时,我收到以下异常

Error: failed parsing --set data: key "****" has no value

如果我对 secret 进行硬编码,它就可以工作。

我的 Jenkins 文件如下所示

    *** Pipeline Code ***
pipeline {
agent any
environment {
DB-USERNAME = credentials('db-username')
DB-PASSWORD = credentials('db-password')

}
stages {
stage('Foo') {
steps {
echo DB-USERNAME
echo DB-USERNAME.substring(0, DB-USERNAME.size() -1) // shows the right secret was loaded

sh 'helm upgrade --install $SERVICE $CHART_NAME --set $DB-USERNAME --set $DB-PASSWORD

}
}
}
}

任何人请给我建议

引用:

https://linuxhelp4u.blogspot.com/2020/04/integrate-jenkins-with-azure-key-vault.html

https://plugins.jenkins.io/azure-keyvault/

最佳答案

使用double quote 一次

  • 如果您使用 "double quotes" , $var在上海"... $var ..."将解释为 Jenkins 变量;

  • 如果您使用“单引号”,$var在上海'... $var ...'将解释为 shell 变量。

示例

pipeline {
agent any
environment {
DB-USERNAME = credentials('db-username')
DB-PASSWORD = credentials('db-password')

}
stages {
stage('Foo') {
steps {
echo DB-USERNAME
echo DB-USERNAME.substring(0, DB-USERNAME.size() -1) // shows the right secret was loaded

sh "helm upgrade --install $SERVICE $CHART_NAME --set $DB-USERNAME --set $DB-PASSWORD"

}
}
}
}

关于azure - Helm | Jenkins Azure keyvault secret 以屏蔽形式传递(********),因此它在 helm 命令中抛出无值异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69993443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com