我正在嘗試使用掌舵圖將 java 微服務部署到 azure kubernetes,我的應用程式幾乎沒有像 DB 用戶名和密碼這樣的秘密。我將我的秘密存盤在 azure keyvault 中。使用 Azure Key Vault 插件和服務主體,我正在嘗試獲取機密。插件中的測驗連接成功,我可以列印我在下面提到的秘密。但是在將秘密傳遞給 helm 命令時,我收到了以下例外
錯誤:決議失敗--設定資料:鍵“****”沒有值
如果我對秘密進行硬編碼,它就會起作用。
我的詹金斯檔案如下所示
*** 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/
uj5u.com熱心網友回復:
使用double quote sh一次
如果您使用
"double quotes",$var在 sh"... $var ..."中將被解釋為Jenkins變數;如果您使用的是“單引號”,則
$var在 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"
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363207.html
標籤:天蓝色 詹金斯 kubernetes-helm azure-aks azure-keyvault
