У меня установлена система CI, использующая стабильную диаграмму Дженкинса Хелма с плагином BlueOcean.
В моей системе SCM (BitBucket Server) у меня есть пользователь сборки Jenkins, созданный с настроенными ключами SSH.
Что я хотел бы сделать, так это запустить установку Jenkins с ключом SSH, чтобы при настройке конвейера BlueOcean аутентификация выполнялась без проблем. На самом деле я должен зайти в репозиторий, который я хочу создать, и добавить доступ к SSH-ключу, сгенерированному BlueOcean. Это явно не идеально, так как добавляет дополнительный ручной шаг для каждого конвейера сборки, который нужно настроить.
В документации к диаграмме Jenkins Helm в values.yaml
указано значение Agent.volumes
, которое можно использовать, например, для монтирования секрета Kubernetes, содержащего ключи SSH. Однако это конфигурация agent , поэтому, вероятно, будет разрешена аутентификация SCM от агента сборки (например, из файла Jenkinsfile). Что я хочу сделать, так это загрузить ключи в Jenkins master .
Я вижу, что существует Master.CredentialsXmlSecret
, который допускает секрет Kubernetes, содержащий XML-файл Credentials, но документации по этому вопросу немного (или он отсутствует).
Кто-нибудь настраивал Jenkins на Kubernetes / Helm с такой конфигурацией SSH?
* Редактирование: мне удалось создать правильный файл credentials.xml
, войдя в Jenkins и вручную установив ключи SSH, затем скопировав полученный файл credentials.xml
, запустив его в кодировке base64
, добавив его как секрет Kubernetes и затем связывает его с Master.CredentialsXmlSecret
в диаграмме Дженкинса Хелма values.yaml
. После этого мой экземпляр Jenkins загружается с файлом credentials.xml
на месте (/var/jenkins_home/credentials.xml
). Кажется, что учетные данные не загружаются в пользовательский интерфейс Jenkins правильно, но я думаю, что я на правильном пути.