首页 > 解决方案 > 在 Jenkins 声明式管道中使用 imagePullSecrets

问题描述

这是我用来创建动态 pod 的 Jenkinsfile 的片段

agent {
        kubernetes {
            label "hello-stage"
            cloud "some-cloud"
            defaultContainer "jnlp"
            idleMinutes 1
            containerTemplate {
                name 'jnlp'
                image 'some-image'
                alwaysPullImage true
                ttyEnabled true
                resourceRequestMemory '1Gi'
                resourceLimitMemory '2Gi' 
            }
            imagePullSecrets '["secret-name"]'
        } // kubernetes
    } // agent

一切正常,除了imagePullSecrets. 我试图找到没有运气的文档。我是使用 Jenkins 和 Kubernetes 的新手。这是我得到的错误

WorkflowScript: 23: Invalid config option "imagePullSecrets" for agent type "kubernetes". Valid config options are [activeDeadlineSeconds, cloud, containerTemplate, containerTemplates, customWorkspace, defaultContainer, idleMinutes, inheritFrom, instanceCap, label, namespace, nodeSelector, podRetention, serviceAccount, slaveConnectTimeout, supplementalGroups, workingDir, yaml, yamlFile, yamlMergeStrategy] @ line 23, column 13.
            imagePullSecrets '["quay-operator-updates"]'

有人可以帮我弄清楚如何将 imagePullSecrets 与 Jenkins 声明式管道一起使用吗?

谢谢

标签: jenkinskubernetesopenshiftjenkins-pluginsjenkins-groovy

解决方案


containerTemplate现在已弃用,如此处所述

使用 yaml 语法传递imagePullSecrets如下:

pipeline {
    agent {
        kubernetes {
            yaml """\
        apiVersion: v1
        kind: Pod
        metadata:
            name: 'jenkins-slave'
            namespace: 'your-namespace'
        spec:
            containers:
            - name: jnlp
              image: jenkins/inbound-agent:4.3-9-alpine
              tty: true
            - name: demo-application
              image: some-image
              imagePullSecrets:
                  - name: your-secret
              tty: true

        """.stripIndent()
        }
    }
    stages {
        stage('run app') {
            steps {
                container('demo-application') {
                    echo POD_CONTAINER
                }
            }
        }
    }
}

推荐阅读