Terraform Helm部署Chaos Mesh,如何仅通过values.yaml配置Ingress?
实现Chaos Mesh Ingress的values.yaml配置方案
完全可以通过Helm values.yaml配置Chaos Mesh的Ingress,无需单独创建Ingress资源。Chaos Mesh官方Helm Chart已内置Dashboard的Ingress配置项,对应dashboard.ingress前缀的参数,具体操作如下:
1. 编写values.yaml配置
将你参考的Ingress示例转换为Helm values格式,示例如下(按需调整):
dashboard: ingress: enabled: true # 以Nginx Ingress为例配置注解 annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 # 配置Ingress主机与路径规则 hosts: - host: your-domain.com paths: - path: /chaos-mesh(/|$)(.*) pathType: Prefix # 按需配置TLS(可选) # tls: # - secretName: chaos-mesh-tls-secret # hosts: # - your-domain.com
2. 在Terraform中应用配置
有两种方式将上述配置整合到你的helm_release资源中:
方式一:使用set块逐个配置(适合简单场景)
直接在Terraform代码中添加set块映射values参数:
resource "helm_release" "chaosmesh" { depends_on = [kubernetes_namespace.chaosmesh] name = "chaosmesh" namespace = var.namespace chart = "chaos-mesh" repository = var.helm_chart_repository version = var.helm_chart_version set { name = "dashboard.service.type" value = var.service_type } # 启用Ingress set { name = "dashboard.ingress.enabled" value = "true" } # 设置Ingress注解(注意转义特殊字符) set { name = "dashboard.ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/rewrite-target" value = "/$2" } # 配置主机 set { name = "dashboard.ingress.hosts[0].host" value = "your-domain.com" } # 配置路径规则 set { name = "dashboard.ingress.hosts[0].paths[0].path" value = "/chaos-mesh(/|$)(.*)" } set { name = "dashboard.ingress.hosts[0].paths[0].pathType" value = "Prefix" } }
方式二:引用本地values文件(适合复杂配置)
将编写好的values配置保存为本地文件(如chaos-mesh-values.yaml),在Terraform中通过values字段引用:
resource "helm_release" "chaosmesh" { depends_on = [kubernetes_namespace.chaosmesh] name = "chaosmesh" namespace = var.namespace chart = "chaos-mesh" repository = var.helm_chart_repository version = var.helm_chart_version set { name = "dashboard.service.type" value = var.service_type } # 引用本地values文件 values = [file("${path.module}/chaos-mesh-values.yaml")] }
注意事项
- 替换
your-domain.com为实际使用的域名 - 若使用非Nginx的Ingress控制器,需调整
annotations中的配置项 - 确保Kubernetes集群已部署对应Ingress控制器(如nginx-ingress)
- TLS配置需提前创建对应的Secret资源
内容的提问来源于stack exchange,提问作者Éric
相关产品推荐
相关产品推荐

