【发布时间】:2019-04-01 07:35:58
【问题描述】:
是否有一些 python/go 库可以从 JSON 文件生成 Terraform 代码,或者是否有任何模板语言来生成 terraform 代码。
用例:
我需要在我的集群上的外部负载均衡器上注册节点端口类型的所有 Kubernetes 服务,并且该外部负载均衡器有一个 terraform 提供程序,它采用服务和命名空间名称以及一些其他参数并注册服务在池上,一旦使用正确的服务和命名空间名称创建池,负载均衡器就会自动发现节点端口和节点 IP,并始终保持池更新。目前,我必须手动编辑 terraform 代码以添加服务名称和其他内容,更新负载均衡器配置以创建 k8s 服务池。
一旦我弄清楚如何从集群的给定状态生成/更新 terraform 文件,我将把这个进程作为集群守护进程放在一个 pod 中,它将每隔 X 间隔运行一次脚本,以便更新负载均衡器当用户创建和删除 k8s 服务时。
terraform 文件中的示例记录:
# Pool automatically populated by K8s Service Discovery
resource "vtm_pool" "<cluster name>_<k8s namsepace>_<k8s service name>" {
name = ""<cluster name>_<k8s namsepace>_<service name>""
monitors = ["Ping"]
service_discovery_enabled = "true"
service_discovery_interval = "15"
service_discovery_plugin = "${var.k8s_discovery_plugin}"
service_discovery_plugin_args = "-s <k8s service name > -n <k8s namsepace> -c <kubeconf file name>"
}
【问题讨论】:
标签: python kubernetes terraform