В настоящее время мы строим конвейер развертывания jenkins. В этих сборках для секретного управления мы используем хранилище HachiCorp. Для получения секрета мы используем hashicorp-vault-plugin . Проблема в том, что мы хотим объявить все переменные в конвейерных скриптах, например: testing ',' testing_again ', secret / another_test (мы этого не хотим)
node {
// define the secrets and the env variables
// engine version can be defined on secret, job, folder or global.
// the default is engine version 2 unless otherwise specified globally.
def secrets = [
[path: 'secret/testing', engineVersion: 1, secretValues: [
[envVar: 'testing', vaultKey: 'value_one'],
[envVar: 'testing_again', vaultKey: 'value_two']]],
[path: 'secret/another_test', engineVersion: 2, secretValues: [
[vaultKey: 'another_test']]]
]
// optional configuration, if you do not provide this the next higher configuration
// (e.g. folder or global) will be used
def configuration = [vaultUrl: 'http://my-very-other-vault-url.com',
vaultCredentialId: 'my-vault-cred-id',
engineVersion: 1]
// inside this block your credentials will be available as env variables
withVault([configuration: configuration, vaultSecrets: secrets]) {
sh 'echo $testing'
sh 'echo $testing_again'
sh 'echo $another_test'
}
}
Но нужно что-то вроде этого -
- Получить весь секрет в качестве ключа и значения
- Поместить файл env перед сборкой проекта
- После построить проект, уничтожить файл env.
Это возможно с помощью jenkins hashicorp-vault-plugin Или получить секрет из хранилища с помощью curl и обработать с помощью команды shell (пример отличный).