Полномочия Дженкинса с работой семени - PullRequest
0 голосов
/ 30 марта 2020

Я получил небольшой кластер Kubernetes от нашей команды частного облака, но они хотят, чтобы мы автоматизировали все. Мне сказали использовать задание Jenkins для создания всех конвейеров, которые мне нужны. Я понял, как это сделать, но есть небольшая проблема. Мне нужно вручную хранить учетные данные реестра docker в jenkins. Есть ли способ, которым я могу автоматизировать создание учетных данных? Или есть какой-либо другой способ аутентификации в личном реестре, кроме использования

container('docker') {
                    withDockerRegistry([credentialsId: 'dockerRegistry', url: "https://registrurl/"]) {

Я нашел примеры использования кода groovy, подобного этому, для создания учетных данных jenkins:

import jenkins.model.*
import hudson.util.*
import org.jenkinsci.plugins.plaincredentials.impl.*
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.domains.*
import com.cloudbees.plugins.credentials.impl.*

// parameters
def jenkinsKeyUsernameWithPasswordParameters = [
        description:  'Description here',
        id:           'key-id-here',
        secret:       '12345678901234567890',
        userName:     'your-username-here'
]

// get Jenkins instance
Jenkins jenkins = Jenkins.getInstance()

// get credentials domain
def domain = Domain.global()

// get credentials store
def store = jenkins.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()

// define secret
def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl(
        CredentialsScope.GLOBAL,
        jenkinsKeyUsernameWithPasswordParameters.id,
        jenkinsKeyUsernameWithPasswordParameters.description,
        jenkinsKeyUsernameWithPasswordParameters.userName,
        jenkinsKeyUsernameWithPasswordParameters.secret
)

// add credential to store
store.addCredentials(domain, jenkinsKeyUsernameWithPassword)

// save to disk
jenkins.save()

Он отлично работает в консоли сценариев Jenkins, но не работает ни с одним заданием, которое я создал.

Я всегда получаю сообщения об ошибках, подобных этому:

jenkins_credentials.groovy: 28: unable to resolve class UsernamePasswordCredentialsImpl 
 @ line 28, column 38.
   def jenkinsKeyUsernameWithPassword = new UsernamePasswordCredentialsImpl(

1 Ответ

0 голосов
/ 31 марта 2020

Вы можете автоматизировать создание учетных данных с помощью конфигурации jenkins как плагин кода https://github.com/jenkinsci/configuration-as-code-plugin/

...