Моя текущая установка включает в себя 2 проекта в стиле фристайл в Дженкинсе, каждый из которых выполняет один и тот же поток с разными параметрами. Я хотел переделать его, и мне показалось, что лучше использовать Pipeline вместо этого беспорядка. Мне также нужна пара учетных данных:
- пароль базы данных (строка)
- Учетные данные Docker Host
- HTTP имя пользователя / пароль для базовой аутентификации (пара имени пользователя и пароля)
- некоторые секретные ключи и т. Д. Я не хочу их жестко кодировать
Мне также нужно больше параметров. Моя проблема в том, что я хочу, чтобы все они были разными на ОТРАСЛИ, например:
- master: использовать учетные данные для prod, пароль рабочей БД, нет имени пользователя и пароля HTTP, секретные ключи производства
- stage: используйте учетные данные для stage, пароль DB базы данных, HTTP-имя пользователя и пароль, секретные ключи stage
- все остальное: ничего не развертывать
Я хотел решить эту проблему путем сохранения идентификаторов учетных данных в качестве параметров, например:
parameters {
string(name: 'DB_CREDENTIALS_ID', defaultValue: '', description: 'DB password')
string(name: 'HTTP_CREDENTIALS_ID', defaultValue: '', description: 'DB password')
string(name: 'DOCKER_CREDENTIALS_ID', defaultValue: 'docker_cert', description: 'Credentials ID')
...
}
Но я понятия не имею, где и как я могу переопределить эти значения по умолчанию. Я хочу, чтобы этим управляли на стороне Дженкинса. Может быть, мой подход совершенно неверен? Что считается хорошей практикой при использовании привязок учетных данных в конвейере Jenkins? Я действительно надеюсь, что в Jenkinsfile это не жестко закодированные идентификаторы.