我正在开发一个 terraform 模块来创建 GKE 集群。同一模块调用执行helm install
应用程序的配置程序。
helm chart 创建负载均衡器。terraform 模块不知道负载均衡器,因此分配的 IP 地址无法在模块中重用。
问题:
如何使用负载均衡器的 IP 创建 DNS 条目并获取证书?
我认为这不是奇特的用例,但我还没有找到一种体面的方法来实现这一点。
我正在开发一个 terraform 模块来创建 GKE 集群。同一模块调用执行helm install
应用程序的配置程序。
helm chart 创建负载均衡器。terraform 模块不知道负载均衡器,因此分配的 IP 地址无法在模块中重用。
问题:
如何使用负载均衡器的 IP 创建 DNS 条目并获取证书?
我认为这不是奇特的用例,但我还没有找到一种体面的方法来实现这一点。
这个问题的正确答案是:
kubernetes_service的数据源。
数据源的概念正是在这里解决了这个问题。
从上面的 kubernetes_service 数据源中,我还可以运行一个带有 kubectl 查询 ip 的 shell 脚本,并使用外部数据源作为通用解决方案。
从那里我可以使用 dns 提供程序和 acme 提供程序中的 IP 地址来创建 dns 条目和证书。
在我的情况下,云提供商没有公开,load_balancer_ip
所以我必须type: NodePort
通过 helm 创建服务并直接通过 terraform 手动创建负载均衡器。
我想这是一个有效的解决方法,如果由于这个特定原因而接受的解决方案不起作用,并且掌舵图提供了将服务部署为不同的type
.