Я получил небольшой кластер 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(