#jenkins #credentials #jenkins-job-dsl
Вопрос:
TL;DR: Задания, созданные с помощью Job DSL, не могут найти существующие учетные данные, что позволяет сохранить задание в графическом интерфейсе.
Моя Конфигурация:
- Дженкинс 2.277.4
- Работа DSL 1.77
- Плагин учетных данных 2.3.13
- Плагин привязки учетных данных 1.23 Они довольно старые, но я жду обновления от наших администраторов…
Шаги:
- Дженкинс содержит учетные данные типа «Секретный текст» с идентификатором = foo-bar.пароль .
- Задание job01 создается с помощью задания DSL и использует эти учетные данные, см. Фрагмент:
... job.with { wrappers { credentialsBinding { string('FOO_BAR_PASSWORD', 'foo-bar.password') } } }
- При запуске job01 происходит сбой с
ERROR: Could not find credentials entry with ID 'foo-bar.password'
- Сброс задания
config.yml
приводит к этому блоку оболочки:
... lt;buildWrappersgt; lt;org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrappergt; lt;bindingsgt; lt;org.jenkinsci.plugins.credentialsbinding.impl.StringBindinggt; lt;variablegt;FOO_BAR_PASSWORDlt;/variablegt; lt;credentialsIdgt;foo-bar.passwordlt;/credentialsIdgt; lt;/org.jenkinsci.plugins.credentialsbinding.impl.StringBindinggt; lt;/bindingsgt; lt;/org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrappergt; lt;/buildWrappersgt; ...
- Настройте задание с помощью графического интерфейса, ничего не меняйте, сохраните его.
- Работа работает
- Сброс конфигурации задания.yml теперь дает этот блок-оболочку,
SecretBuildWrapper
который теперь содержит атрибутplugin="credentials-binding@1.23"
... lt;buildWrappersgt; lt;org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.23"gt; lt;bindingsgt; lt;org.jenkinsci.plugins.credentialsbinding.impl.StringBindinggt; lt;credentialsIdgt;foo-bar.passwdlt;/credentialsIdgt; lt;variablegt;FOO_BAR_PASSWORDlt;/variablegt; lt;/org.jenkinsci.plugins.credentialsbinding.impl.StringBindinggt; lt;/bindingsgt; lt;/org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrappergt; lt;/buildWrappersgt; ...
So GUI Save solved the problem and seems to allow Credential Bindings plugin to find the credential.
Кто-нибудь видел это, может быть, с другими версиями компонентов? Исправлена ли она в более новых версиях?
Поскольку мы создаем более 500 рабочих мест таким образом, ручное сохранение не является вариантом. Поэтому я был бы очень рад подсказке для автоматического сохранения заданий, например, по префиксу имени в консоли сценариев.