Jenkins X在Preview环境中使用机密

时间:2019-02-28 11:31:25

标签: jenkins jenkins--x

我正在使用Jenkins X进行微服务构建/部署。在每个环境中,存在跨微服务使用的共享机密(客户端密钥等),它们使用deployment.yamlvalueFrom作为环境变量注入到secretKeyRef中。这在名称空间众所周知的生产和登台中很好用,但是由于预览每次都会生成一个新的名称空间,因此这些秘密将不存在。有没有办法从另一个已知的名称空间复制机密,或者有更好的方法?

3 个答案:

答案 0 :(得分:2)

您可以创建另一个名为jx-preview的命名空间来存储预览特定的机密,并在Jenkinsfile中的jx preview命令之后添加此行

sh "kubectl get secret {secret_name} --namespace={from_namespace} --export -o yaml | kubectl apply --namespace=jx-$ORG-$PREVIEW_NAMESPACE -f -"

不确定这是否是最好的方法

答案 1 :(得分:0)

我们有一个命令可以将link services从一个命名空间服务到另一个命名空间-例如通过jx step link services将服务从登台链接到您的预览环境。

最好添加类似的命令以相同的方式从名称空间复制机密。我提出了an issue to track this new feature

答案 2 :(得分:0)

另一种选择是在charts/preview/templates/myjob.yaml中创建自己的作业,然后在该作业中创建所需的所有机密信息,然后对其进行注释,以使其触发为预览图的安装后挂钩