我正在使用 Jenkins X 进行微服务构建/部署。在每个环境中,都有跨微服务(客户端密钥等)使用的共享机密,这些机密使用和deployment.yaml
作为环境变量注入。这在命名空间众所周知的生产和暂存中效果很好,但是由于每次预览都会生成一个新的命名空间,因此这些秘密将不存在。有没有办法从另一个已知的命名空间或更好的方法复制秘密?valueFrom
secretKeyRef
问问题
287 次
3 回答
4
您可以创建另一个名为存储预览特定机密的命名空间,并在 Jenkinsfile 中jx-preview
的命令之后添加此行jx preview
sh "kubectl get secret {secret_name} --namespace={from_namespace} --export -o yaml | kubectl apply --namespace=jx-$ORG-$PREVIEW_NAMESPACE -f -"
不确定这是否是最好的方法
于 2019-03-03T13:52:37.777 回答
0
另一种选择是在其中创建自己的作业,charts/preview/templates/myjob.yaml
并在该作业中创建所需的任何秘密,然后对其进行注释,以便将其作为预览图表的安装后挂钩触发
于 2019-03-04T09:34:18.777 回答
0
我们有一个命令来服务从一个命名空间到另一个命名空间的链接服务- 例如通过jx step link services将服务从登台链接到您的预览环境。
最好添加一个类似的命令来以相同的方式从命名空间复制机密。我提出了一个问题来跟踪这个新功能
于 2019-03-04T09:32:35.457 回答