掌舵 | Jenkins Azure keyvault 机密作为掩码传递 (********),因此它在 helm 命令中抛出无值异常
Helm | Jenkins Azure keyvault secrets are passing as masked(********),So it's throwing no value exception in helm command
我正在尝试使用 helm 图表将 java 微服务部署到 azure kubernetes 中,我的应用程序几乎没有像数据库用户名和密码这样的秘密。我将我的秘密存储在 azure keyvault 中。使用 Azure Key vault 插件和服务主体,我正在尝试获取机密。测试连接在插件中成功,我可以打印我的秘密,如下所述。但是在将秘密传递给 helm 命令时,我遇到了以下异常
Error: failed parsing --set data: key "****" has no value
如果我对秘密进行硬编码,它就可以工作。
我的詹金斯文件如下所示
*** 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
使用double quote
sh一次
如果你使用"double quotes"
, $var
in sh "... $var ..."
将是
解释为 Jenkins 变量;
如果你使用'single quotes', $var
in sh '... $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"
}
}
}
}
我正在尝试使用 helm 图表将 java 微服务部署到 azure kubernetes 中,我的应用程序几乎没有像数据库用户名和密码这样的秘密。我将我的秘密存储在 azure keyvault 中。使用 Azure Key vault 插件和服务主体,我正在尝试获取机密。测试连接在插件中成功,我可以打印我的秘密,如下所述。但是在将秘密传递给 helm 命令时,我遇到了以下异常
Error: failed parsing --set data: key "****" has no value
如果我对秘密进行硬编码,它就可以工作。
我的詹金斯文件如下所示
*** 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
使用double quote
sh一次
如果你使用
"double quotes"
,$var
in sh"... $var ..."
将是 解释为 Jenkins 变量;如果你使用'single quotes',
$var
in sh'... $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"
}
}
}
}