zde*_*bra 4 yaml terraform terraform-provider-kubernetes
我想使用 terraform 将大使设置为 kubernetes 的 API 网关。配置大使的方法有多种。根据文档,推荐的方法是对在集群外部路由和公开的每个服务使用 kubernetes 注释。使用 kubernetes yaml 配置可以轻松完成此操作:
kind: Service
apiVersion: v1
metadata:
  name: my-service
  annotations:
    getambassador.io/config: |
      ---
        apiVersion: ambassador/v0
        kind:  Mapping
        name:  my_service_mapping
        prefix: /my-service/
        service: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
Run Code Online (Sandbox Code Playgroud)
该getambassador.io/config字段的值以|suggest 开头,它是一个多行字符串值。如何使用 terraform HCL 实现同样的效果?
Terraform 文档包含有关使用多行字符串的部分<<EOF your multiline string EOF:
resource "kubernetes_service" "my-service" {
  "metadata" {
    name = "my-service"
    annotations {
      "getambassador.io/config" = <<EOF
        apiVersion: ambassador/v0
        kind:  Mapping
        name:  my_service_mapping
        prefix: /my-service/
        service: my-service
        EOF
    }
  }
  "spec" {
    selector {
      app = "MyApp"
    }
    port {
      protocol = "TCP"
      port = 80
      target_port = "9376"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)
---确保yaml 配置中没有三重破折号 ( )。Terraform 错误地解析了它。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           10024 次  |  
        
|   最近记录:  |