如何在 terraform - aks 中创建 nginx ingress

How to create nginx ingress in terraform - aks

我如何使用 terraformazure kubernetes 中创建一个 nginx ingress,在这个 link , i remember seeing some steps as a mandatory installation for all setups, right now it seems to be removed and there is a specific way of installing for aks in this link 的前面,我是否应该重写所有这些以适应 terraform或者有没有其他聪明的方法可以通过 terraform

aks 安装 nginx ingress

有一个很好的教程Create an Application Gateway ingress controller in Azure Kubernetes Service. And you can check GitHub for Application Gateway Ingress Controller

如果您使用的是 Terraform 版本 0.12 或更高版本,您可以使用 terraform provider kubernetes example.

关于 Terraform 文档,您应该查看 Data source kubernetes_ingress and Resource kubernetes_ingress

如果您提供更多详细信息,我会更新答案。

您可以尝试使用 Terraform 的 helm 提供程序。

provider "helm" {
    kubernetes {
        host     = azurerm_kubernetes_cluster.your_cluster.kube_config.0.host
        client_key             = base64decode(azurerm_kubernetes_cluster.your_cluster.kube_config.0.client_key)
        client_certificate     = base64decode(azurerm_kubernetes_cluster.your_cluster.kube_config.0.client_certificate)
        cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.your_cluster.kube_config.0.cluster_ca_certificate)
    }  
}

data "helm_repository" "stable" {
  name = "stable"
  url  = "https://kubernetes-charts.storage.googleapis.com"
}

resource "helm_release" "nginix_ingress" {
    name      = "nginix_ingress"
    repository = data.helm_repository.stable.metadata.0.name
    chart     = "stable/nginx-ingress"
    namespace = "kube-system"
}

如果您的集群已经创建,您还必须使用数据源导入它。 helm_release 也支持自定义值。 Here 是 link 如果您需要更多信息。

更新答案

resource "helm_release" "nginix-ingress" {
  name      = "nginix-ingress"    
  repository = "https://charts.bitnami.com/bitnami"    
  chart     = "nginx"
  namespace = "kube-system"
}