Jenkins kubernetes插件从1.14.2--> 1.26.0升级后,现在Jenkins作业失败。插件更新改变了构建dir路径--重新澄清问题

问题描述 投票:0回答:1

Jenkins版本是2.222.4.我们将jenkins kubernetes插件从1.14.2-->1.26.0升级。这样做的结果是,在插件升级前,jenkins slave会把homejenkins挂载为rw,这样它就可以在那里使用.gradle文件进行构建。

插件升级后,homejenkins现在被改成了 只读然而,构建工作现在没有更多的rw访问homejenkins中的文件,它需要。

我做了一个df -h对我们的从属jnlp荚升级前(k8splugin-V1.14.2),并看到以下内容。

Filesystem Size Used Available Use% Mounted on overlay 119.9G 5.6G 109.1G 5% / /dev/nvme0n1p2 119.9G 5.6G 109.1G 5% /home/jenkins

可以看到它被挂载为读写

cat /proc/mounts | grep -i jenkins /dev/nvme0n1p2 /home/jenkins ext4 rw,relatime,data=ordered 0 0

插件升级后,如果我运行df -h,我甚至没有看到homejenkins只挂载。/dev/nvme0n1p2 120G 5.6G 110G 5% /etc/hosts

如果我猫猫procmounts,我只看到这个升级后的内容

jenkins@buildpod:~$ cat /proc/mounts | grep -i jenkins /dev/nvme0n1p2 /home/jenkins/agent ext4 rw,relatime,data=ordered 0 0 /dev/nvme0n1p2 /home/jenkins/.jenkins ext4 rw,relatime,data=ordered 0 0

在jenkins工作日志中也看到了这一点,但不知道是否相关。WARNING] HOME is set to / in the jnlp container. You may encounter troubles when using tools or ssh client. This usually happens if the uid doesnt have any entry in /etc/passwd. Please add a user to your Dockerfile or set the HOME environment variable to a valid directory in the pod template definition.

任何想法或工作方法将是最欢迎的,因为严重卡住这个问题。

docker jenkins kubernetes jenkins-plugins
1个回答
1
投票

我的同事刚刚发现了这个问题。他发现这要追溯到插件开发者在2019年8月的某个时候所做的一个改变,以兼容Kubernetes 1.18。那就是他们在1.18.0版本的插件中更改了默认工作空间。在这里github.comjenkinscikubernetes-pluginpull713发现并应该修复,但在我们的情况下,它仍然存在。解决办法是在每个作业的jenkins文件中硬编码进去 workingDir: '/home/jenkins' 容器下

© www.soinside.com 2019 - 2024. All rights reserved.