在管道执行期间,詹金斯·库伯内特(Jenkins Kubernetes)插件的凭证/秘密没有从主机上插入podtempl



设置场景:我已经设置了一个多节点的kubernetes群集,并使用Jenkins Kubernetes插件部署了Jenkins Helm图表。我们在内部运行(公司)是一个企业GitHub安装,我们有多个私人和公共存储库。这些构建是使用非决定性的Jenkins管道实现的(声明管道的插件中缺少许多功能)。这些构建不会在Jenkins Master上运行,但是每个作业运行都会通过podtemplates/containerTemplates出于明显的原因(最大扩展和总隔离/无副作用)消耗自己的豆荚。

问题/问题:我没有发现如何从私人存储库中获取如何从私人存储库中获取,或者更常见的是,我找不到从Jenkins Master(我想集中维护它们)中将任何凭据/秘密从插件创建的豆荚/容器中。对于我的工作运行,即我错过了这些豆荚/容器,例如从私人仓库中取出的证书/秘密。如何在动态产卵的吊舱/容器中使它们可用?那甚至可能吗?

一些其他信息:在我的詹金斯大师身上,我可以从私人存储库中完美获取,可以访问所有内容,一切都很好。直到最近,我尝试使用Kubernetes插件,并从我的群集中获得更多。另外,我将kubectl exec'D纳入JNLP从属容器(及其基于我的containerTemplates的兄弟姐妹),找不到任何东西。不在env中,而不是在文件中。我尚不清楚我的凭证/秘密如何被注入,以及我需要为此做些什么。

我已经使用的脏解决方案,但我喜欢替换:为了克服这个问题,我将凭证放入了Jenkinsfile,但这很糟糕,因为我现在在我的存储库中涂抹它们,这也不是公共存储库的解决方案。我也做的是将它们烘烤到我的图像中以获取POD/容器模板,但这是因为我现在将它们放入Dockerfiles(在构建过程中直接或间接地)而无法使用现成的图像,这很难再也不能将我的图像放在公共形象中。我猜想也可以修改我的最高podtemplate/containerTemplate,并用凭据/秘密手动添加env vars,但这很丑陋,而且我不会再利用jenkins Master凭证/秘密商店。

我正在寻找解决问题的干净解决方案。我希望,可以将我的凭据/秘密从詹金斯大师带到我也喜欢保留的动态产卵的豆荚/容器中(没有静态的奴隶,但每一个工作都可以动态的奴隶)。

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

您可以创建自己的my_jenkins_credential_id可用 globaly 由此页面:

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

最新更新