jenkins - 在 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 声明式管道一起使用吗?
谢谢
解决方案
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
}
}
}
}
}
推荐阅读
- kotlin - 如何在 Kotlin 中为多个变量分配相同的值
- swift - 如何使用 Vapor 和 Leaf 将图像从浏览器上传到 Amazon S3?
- sidekiq - 如何通过 jid 查找 Sidekiq 旧工作状态
- haskell - 如何从 Haskell 调用 C++ Setter 和 Getter
- sql - 如何使用特定条件使用多个表
- amazon-web-services - 亚马逊广告 API 不适用于 S3 的自定义 VPC 终端节点策略
- html - 如何从数据库中按 category_id 列出产品并按 item_id 排序?
- python - 如何修复 django-db-mailer SMS API 语言参数更改应用程序的语言
- jquery - jqgrid 在页面上显示应该是图标的确切代码
- elasticsearch - 带有 json 字段的弹性搜索和其他字段的优先级,并在顶部过滤数据