繁体   English   中英

掌舵 | Jenkins Azure 密钥保管库机密以掩码(********)的形式传递,因此在 helm 命令中不抛出任何值异常

[英]Helm | Jenkins Azure keyvault secrets are passing as masked(********),So it's throwing no value exception in helm command

我正在尝试使用掌舵图将 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/

使用double quote sh一次

  • 如果您正在使用"double quotes"$var在SH "... $var ..."将被解释为詹金斯变量;

  • 如果您正在使用“单引号”, $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"

      }
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM