【发布时间】:2020-03-12 17:10:15
【问题描述】:
我目前正在努力完成以下任务。我不想在我的模板中包含我的 TLS 证书,因为
我不想在仍然签入模板的同时签入代码管理中的凭据
我正在使用具有相同证书的多个应用程序,我不想仅仅因为我可能分发另一个证书而更新存储库
现在我的方法是这样的。我将 Jenkins 用于我的构建管道。我有一个仅用于证书管理的回购。它会在更新时运行,并将证书和私钥分发到各种集群上的 Openshift Secrets。
在运行应用程序的模板时,我正在从密钥中检索信息并设置路由中的值。这就是事情变得棘手的地方。我只能使用单行值,因为
- Openshift 模板将不接受带有 oc 进程的多行参数
- 秘密不会存储多行值
所以解决方案似乎很简单。只需使用 \n 存储证书并将其设置在 Route 中,如下所示。但是 Openshift 将不接受导致错误的单行证书
spec.tls.key:无效值:“编辑的密钥数据”:tls:在 PEM 中找到证书而不是私钥
现在解决方案可能是将证书作为多行直接插入到模板文件中,然后再处理并将其应用到集群,但这对我来说似乎有点笨拙。所以我的问题是
您如何集中管理您的应用程序的 TLS 证书并在您应用的模板中正确设置它们?
【问题讨论】:
-
您可以查看这篇博文:blog.openshift.com/…。您将能够为您的所有应用颁发通配符证书,并在使用边缘+重定向 TLS 配置创建路由时使用它们。
标签: ssl kubernetes openshift