【问题标题】:Does the Terraform resource kubernetes_ingress_v1 have a "use_annotation" equivalent?Terraform 资源 kubernetes_ingress_v1 是否具有“use_annotation”等效项?
【发布时间】:2022-08-19 06:48:04
【问题描述】:

我们目前正在将我们的 terraform kubernetes_ingress 资源迁移到 kubernetes_ingress_v1 资源。以前,我们在入口上有这些注释:

annotations = {
  \"kubernetes.io/ingress.class\" = \"alb\"
  \"alb.ingress.kubernetes.io/scheme\" =  \"internet-facing\"
  \"alb.ingress.kubernetes.io/certificate-arn\" = var.create_acm_certificate ? aws_acm_certificate.eks_domain_cert[0].id : var.aws_acm_certificate_arn
  \"alb.ingress.kubernetes.io/listen-ports\" = \"[{\\\"HTTP\\\": 80}, {\\\"HTTPS\\\":443}]\"
  \"alb.ingress.kubernetes.io/actions.ssl-redirect\" = \"{\\\"Type\\\": \\\"redirect\\\", \\\"RedirectConfig\\\": { \\\"Protocol\\\": \\\"HTTPS\\\", \\\"Port\\\": \\\"443\\\", \\\"StatusCode\\\": \\\"HTTP_301\\\"}}\"
  \"alb.ingress.kubernetes.io/ssl-policy\" = \"ELBSecurityPolicy-TLS-1-2-Ext-2018-06\"
  \"alb.ingress.kubernetes.io/healthcheck-path\" = \"/healthz\"
}

在规范中与此部分一起多次:

path {
      backend {
        service_name = \"ssl-redirect\"
        service_port = \"use-annotation\"
      }
      path = \"/*\"
    }

但是,kubernetes_ingress_v1 需要如下格式:

path {
      backend {
        service {
          name = \"ssl-redirect\"
          port { 
            number = <number_value>
          }
        }
      }
      path = \"/*\"
    }

其中端口是一个实际数字,而不是“使用注释”。有没有办法在 kubernetes_ingress_v1 资源中复制这种“使用注释”行为?或者,更好的是,有没有更简单的方法来处理 kubernetes_ingress_v1 中的这个 ssl 重定向规则?

    标签: terraform kubernetes-ingress aws-application-load-balancer


    【解决方案1】:

    您可以使用以下语法来实现:

    backend {
      service {
        name = "ssl-redirect"
        port {
          name = "use-annotation"
        }
      }
    }
    
    

    如您所见,您需要使用参数姓名反而港口.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 2021-12-22
      • 2020-08-08
      相关资源
      最近更新 更多