将安全上下文传递给Jenkins-Kubernetes插件

时间:2018-01-31 03:00:36

标签: jenkins kubernetes jnlp

我为jenkins / jnlp创建了一个docker镜像,并在kubernetes集群中使用它来启动动态从属。有了这个,我能够检查我的代码并在动态从属上运行构建。

然而,当我在插件配置中提到卷(jenkins_home ie / mycom / jenkins)作为NAS持久卷声明时,我观察到挂载路径权限正在变为“nobody”而不是“jenkins”。这是我的jenkins构建失败,因为它无法在同一文件夹下创建工作区。

Kubernetes文档声明我们可以将fsgroup详细信息作为安全上下文的一部分传递,这是pod定义的一部分。但我没有在jenkins-kubernetes插件中看到这个选项。有什么方法可以将“RunAsUser”或“fsgroup”细节传递给jenkins的pod?

2 个答案:

答案 0 :(得分:0)

我得到的解决方法是在Kubernetes Host的一个pod中对JENKINS_HOME进行“777”访问。这也存在于所有其他创建的pod中。这样,每当我的容器与jenkins用户一起运行时,它就能够在没有用户访问权限的jenkins_home目录中创建工作区。

答案 1 :(得分:0)

使用舵图安装jenkins时,可以选择指定RunAsUserFsGroup。您也可以指定PersistentVolumeClaim。请参阅values.yaml此处 - https://github.com/kubernetes/charts/tree/master/stable/jenkins