air*_*ata 1 jenkins jenkins-plugins kubernetes jenkins-pipeline kubernetes-jenkins-plugin
我在为 Jenkins 使用kubernetes-plugin时尝试使用标签,但我有点困惑。在我的pipeline下面,我尝试parallel使用不同的标签(代理)分步骤构建测试作业。
我已经在 Jenkins 配置中使用 pod 模板和容器配置了插件,其中我使用与podTemplate定义的管道中相同的设置。
问题是,当我agent label在第 2 阶段使用时,运行的是 jnpl 映像,而不是我在 config 中指向的映像someimage:latest。
在stage 1我在管道中定义 pod 的地方没有问题,并且所需的图像运行良好。
我做错了什么?
这是我在 Jenkins 中的kubernetes 插件jenkinsfile的配置:
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"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
stage您没有为withlabel k8s和指定图像windows。
您可以在文档中阅读:
该插件为每个启动的代理创建一个 Kubernetes Pod,由要运行的 Docker 映像定义,并在每次构建后停止它。
代理是使用 JNLP 启动的,因此预计镜像会自动连接到 Jenkins master。
您正在使用podTemplate,我建议您进行设置container,这可能如下所示:
podTemplate(containers: [
containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
]) {
node(POD_LABEL) {
stage('Get a Maven project') {
git 'https://github.com/jenkinsci/kubernetes-plugin.git'
container('maven') {
stage('Build a Maven project') {
sh 'mvn -B clean install'
}
}
}
stage('Get a Golang project') {
git url: 'https://github.com/hashicorp/terraform.git'
container('golang') {
stage('Build a Go project') {
sh """
mkdir -p /go/src/github.com/hashicorp
ln -s `pwd` /go/src/github.com/hashicorp/terraform
cd /go/src/github.com/hashicorp/terraform && make core-dev
"""
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以阅读有关容器配置和容器组支持的更多信息
| 归档时间: |
|
| 查看次数: |
30091 次 |
| 最近记录: |