一般来说
我在为 Jenkins 使用kubernetes-plugin时尝试使用标签,但我有点困惑。在我的pipeline
下面,我正在尝试parallel
使用不同的标签(代理)逐步构建测试作业。
我已经在我的 Jenkins 配置中使用 pod 模板和容器配置了插件,我在其中使用与podTemplate
定义的管道中相同的设置。
问题
问题是,当我agent label
在第 2 阶段使用时,运行的是 jnpl 图像,而不是我在 config 中指向的图像someimage:latest
。
在stage 1
我在管道中定义 pod 的地方没有问题,并且所需的图像运行良好。
问题
我做错了什么?
这是我在 Jenkins中kubernetes-pluginjenkinsfile
的配置:
def podTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: k8s
image: someimage:latest
command:
- sleep
args:
- infinity
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
workingDir: "/home/jenkins/agent"
volumes:
- name: "workspace-volume"
persistentVolumeClaim:
claimName: "jenkins-worker-pvc"
readOnly: false
"""
pipeline {
agent none
stages {
stage("Parallel") {
parallel {
stage("1.k8s") {
agent {
kubernetes {
yaml podTemplate
defaultContainer 'k8s'
}
}
steps {
sh """
mvn -version
"""
}
}
stage("2. k8s") {
agent { label 'k8s' }
steps {
sh """
mvn -version
"""
}
}
stage("win") {
agent { label 'windows' }
steps {
bat "dir"
}
}
}
}
}
}