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

如何通过Helm Provider设置空值移除默认CPU限制配置字段?

解决方案

要完全移除社区Chart默认的CPU限制,核心是让Helm传递真正的YAML null值给Kubernetes API,而非字符串形式的"null"或"~"。按以下方式修改代码即可解决问题:

1. 使用Terraform原生null值替换字符串

将local.values中limits.cpu的值从字符串"~"或"null"改为Terraform原生的null(不带引号):

locals {
   values = {
    someconfig = {
      resources = {
        requests = {
          cpu    = "500m"
          memory = "2Gi"
        }
        limits = {
          memory = "2Gi"
          # 用原生null移除默认CPU限制
          cpu    = null
        }
      }
    }
  }
}

resource "helm_release" "derp" {
  # ... 其他配置保持不变
  name      = "blah"
  namespace = "blah"
  values = [
    yamlencode(local.values)
  ]
}

yamlencode处理原生null时,会生成YAML格式的null,而非字符串。Helm合并自定义values与Chart默认values时,会用这个null值覆盖默认的CPU限制,最终Pod spec中不会生成CPU limit字段。

2. 确认Helm版本有效性

确保使用Helm 3.10.0及以上版本,早期版本存在null值处理的回归问题,无法正确用null覆盖默认值。可通过以下命令检查版本:

helm version

无效方法的原因说明

  • 设置cpu = "0"触发GKE NAP校验错误:请求CPU(500m)不能大于限制CPU(0),不符合资源限制逻辑。
  • 设置cpu = "null"或cpu = "~"会被识别为字符串,Kubernetes API无法解析该格式的资源限制,直接返回错误。

内容的提问来源于stack exchange,提问作者red888

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:35:00