首页 > 解决方案 > 如何在 Jenkins Step 中设置秘密

问题描述

我正在寻找一种仅在 Jenkins 步骤中注入秘密的解决方案:

应用程序属性:

spring.datasource.username=mySecretValue
spring.datasource.password=mySecretValue
...

当前状态:

stage('Test') {
      agent {
          docker {
               image 'myregistry.com/maven:3-alpine'
                    reuseNode true
                }
       }
       steps {
                configFileProvider([configFile(fileId: 'maven-settings-my-services', variable: 'MAVEN_SETTINGS')]) {
                    sh 'mvn -s $MAVEN_SETTINGS verify'
                }
            }
...


谢谢!

标签: spring-bootmavenjenkins-pipelinekubernetes-secrets

解决方案


选项 1)为该密钥添加密码作业参数。但这项工作必须手动运行,因为需要有人输入密码。

// write the secret to application.property at any stage that
// prior to test and deployment stage

sh "echo spring.datasource.password=${params.DB_PASSWORD} >> application.property"

选项 2) 将密钥添加为 Jenkins 字符串文本凭据。但是添加凭证需要 Jenkins 管理员访问权限,并且还需要考虑将来更新。

stage('test or deployment') {
   environment {
      DB_PASSWORD = credentials('<credential_id_of_the_secret>')
   }
   steps {
      sh "echo spring.datasource.password=${env.DB_PASSWORD} >> application.property" 
   }
}

推荐阅读