You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:05:27