在管道执行期间,Jenkins Kubernetes Plugin没有从master进入PodTemplate / ContainerTemplate的凭据/秘密?

时间:2017-09-03 08:21:10

标签: jenkins kubernetes credentials

设置场景: 我已经设置了一个多节点Kubernetes cluster,并使用Jenkins Helm Chart部署了Jenkins Kubernetes plugin。我们在内部运行(公司 - )企业GitHub安装,我们有多个私人和公共回购。构建使用非声明性Jenkins pipelinesmany features are missing in the plugin for declarative pipelines)实现。构建不会在Jenkins主服务器上运行,但是由于显而易见的原因(最大横向扩展和完全隔离/没有副作用),每个作业都会通过podTemplates/containerTemplates消耗自己的容器。

问题/疑问: 我发现没有办法或描述如何从私人存储库获取,或者更一般地说,我发现没有办法从Jenkins主机(我喜欢集中维护它们)中提取任何凭据/秘密到插件创建的pod /容器中因为我的工作运行,即我错过了那些豆荚/容器,例如从私人仓库获取的凭证/秘密。如何在动态生成的pod /容器中提供这些?这甚至可能吗?

其他一些信息: 在我的詹金斯大师,我可以完全从私人回购,取得一切,一切都很好。我最近才尝试使用Kubernetes插件并从群集中获取更多信息。此外,我kubectl exec进入JNLP从属容器(以及基于我的containerTemplates的兄弟姐妹)并且找不到任何东西。不在ENV中,不在文件中。我不清楚如何注入我的证书/秘密,以及我需要做些什么。

我已经使用的脏解决方案,但我想替换: 为了解决这个问题,我把我的凭据放到JenkinsFile中,但那很糟糕,因为我现在把它们涂抹在我的回购中,而且公共回购也没有解决方案。我还做的是将它们烘焙到我的图像中用于pod /容器模板,但是由于类似的原因我现在将它们放入DockerFiles(在构建过程中直接或间接)并且无法使用现成的图像已经不再存在,并且不再能够将我的图像放入公共图像存储库中。我想也可以修改我最顶级的podTemplate / containerTemplate并手动添加带有凭据/秘密的ENV vars,但这很丑陋以及我不会使用Jenkins主证书/秘密商店。

我正在寻找一个干净的解决方案。我希望,可以将Jenkins大师的凭据/秘密带到我也想保留的动态生成的pod /容器中(没有静态的奴隶,但每个作业运行都是动态的奴隶)。

1 个答案:

答案 0 :(得分:0)

git url: 'private-gitlab-address',
    branch: 'master',
    credentialsId : 'my_jenkins_credential_id'

您可以通过此页面创建自己的my_jenkins_credential_id可用全局

jenkins-master-address/credentials/store/system/domain/_/newCredentials