# call module
module "example_nginx" {
providers = {
# we're using the alias provider we configured above
kustomization = kustomization.example
}
source = "kbst.xyz/catalog/nginx/kustomization"
version = "1.2.1-kbst.0" # find the latest version on https://www.kubestack.com/catalog/nginx
# the configuration here assumes you're using Terraform's default workspace
# use `terraform workspace list` to see the workspaces
configuration_base_key = "default"
configuration = {
default = {
replicas = [{
name = "ingress-nginx-controller"
count = 5
}]
}
}
}
5条答案
按热度按时间chhqkbe11#
您可以尝试使用Terraform的 Helm 提供商。
如果您的集群已经创建,您还必须使用数据源导入它。
helm_release
也支持自定义值。Here是链接,如果您需要更多信息。ovfsdjhp2#
有一个很好的教程Create an Application Gateway ingress controller in Azure Kubernetes Service。你可以在GitHub上查看Application Gateway Ingress Controller。
如果您使用的是Terraform版本0.12或更高版本,则可以使用terraform provider kubernetes example。
至于Terraform文档,您应该检查Data source kubernetes_ingress和Resource kubernetes_ingress。
如果你提供更多细节,我会更新答案。
oknrviil3#
更新答案
kognpnkq4#
我提供了一种替代方法,在我看来更好,使用Terraform提供Kubernetes服务,如Nginx ingress。
我的基于kustomize的模块比使用基于helm的模块有两个主要好处:
1.修补而不是模板化使得跨新的上游版本更容易维护自定义配置
1.我的kustomization provider与helm提供程序不同,在
terraform plan
期间显示详细的差异,甚至销毁/重新创建如果你感兴趣,这里有一个detailed comparison between my kustomize based Nginx ingress Terraform module和一个基于helm的模块。
使用该模块非常简单:
示例模块调用使用kustomize的
replicas
属性来更改Nginx入口控制器的副本。模块的(我有他们不仅仅是Nginx)允许定义kustomization作为模块调用的一部分。它们还捆绑了一个上游版本,您可以使用version属性来控制版本。
所有可用的kustomization属性的文档都可以在Kubestack网站上找到。
我将这些模块作为Kubestack, my open-source framework for platform teams working with Terraform and Kubernetes的一部分进行维护。
ct2axkht5#
我认为使用
true
添加http_application_routing_enabled
应该为您的集群创建nginx ingress。