我从我们的私有云团队那里得到了一个小型Kubernetes集群,但他们希望我们自动化一切。我被告知要使用詹金斯种子作业来创建我需要的所有管道。我想好了怎么做,但有一个小问题。我需要在jenkins中手动存储docker注册表的凭据。有什么方法可以自动创建凭据吗?或者除了使用之外,还有其他方法可以通过私人注册中心进行身份验证吗
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(
您可以使用jenkins配置作为代码插件来自动创建凭据https://github.com/jenkinsci/configuration-as-code-plugin/