我在 kubernetes 集群上使用 jenkins,安装了 helm 图表,如下所示,
helm install my-jenkins jenkinsci/jenkins -n jenkins \
--set controller.serviceType=LoadBalancer \
--set controller.servicePort=8888 \
--set persistence.existingClaim=jenkins-pvc \
--set persistence.accessMode=ReadWriteMany
还尝试了 --set agent.enabled=false 但也捕获了默认的 jnlp 图像
并尝试通过下面的管道覆盖 jnlp 代理,但它跳过我的定义并提取默认的
jenkins/inbound-agent:4.3-4
图像。
我的管道:
pipeline {
agent {
kubernetes {
cloud 'kubernetes'
label 'jnlp'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
label: agent
jenkins: slave
name: jnlp
spec:
containers:
- name: jnlp
image: nurhun/my_custom_jenkins_inboud_agent:v1.0
args: ['\$(JENKINS_SECRET)', '\$(JENKINS_NAME)']
env:
- name: CONTAINER_ENV_VAR
value: jnlp
- name: JENKINS_AGENT_WORKDIR
value: /home/jenkins/agent
- name: JENKINS_URL
value: http://my-jenkins.jenkins.svc.cluster.local:8888/
- name: "JENKINS_TUNNEL"
value: "my-jenkins-agent.jenkins.svc.cluster.local:50000"
volumeMounts:
- mountPath: "/home/jenkins/agent"
name: "workspace-volume"
readOnly: false
- name: jenkins-docker-cfg
mountPath: /var/run/docker.sock
volumes:
- name: jenkins-docker-cfg
hostPath:
path: /var/run/docker.sock
- emptyDir:
medium: ""
name: "workspace-volume"
"""
}
}
stages {
stage('Build') {
agent {
kubernetes {
label 'jnlp'
defaultContainer 'jnlp'
}
}
steps {
sh "docker build . -t custom_image:${IMAGE_TAG}"
}
}
}
}
我也尝试如下设置
Defaults Provider Template Name
,但还是不行。
有什么想法吗?
我会尝试指定您要使用的容器,如下所示:
stages {
stage('Build') {
steps {
container('jnlp'){
sh "docker build . -t custom_image:${IMAGE_TAG}"
}
}
}
}