Helm configmap error Error: UPGRADE FAILED: ConfigMap "my-service.v130" is invalid: data: Too long: must have at most 1048576 characters

Helm configmap error Error: UPGRADE FAILED: ConfigMap "my-service.v130" is invalid: data: Too long: must have at most 1048576 characters

我在 运行 命令时收到此错误 Error: UPGRADE FAILED: ConfigMap "my-service.v130" is invalid: data: Too long: must have at most 1048576 characters

$ KUBECONFIG=/Users/tomcaflisch/.kube/config.dev helm upgrade --wait --recreate-pods --install my-service --version v0.1.0-gedc3d28-dirty  -f ./values.yaml  -f ./secrets.yaml  -f ./vars/dev/db.yaml  -f ./vars/dev/epic.yaml  -f ./vars/dev/ingress.yaml  -f ./vars/dev/services.yaml  -f ./vars/dev/tkn.yaml --set image.tag=v0.1.0-gedc3d28-dirty .

我无法想象我生成的 configmap 甚至接近该限制。我该如何调试它?

这是一个已知问题,您可以找到几个相关问题 - that one,例如。

Kubernetes 上的 Configmap 对象有 1Mb 的大小限制,不幸的是(或者幸运的是)您无法更改它。

无论如何,增加限制是个坏主意,因为K8s将Configmaps存储在Etcd中,不喜欢大对象。

Helm 使用 release 的 configmap 来存储很多东西,包括图表文件,这可能是你的问题。

尝试将图表目录中的所有文件(如 .git 目录)(图表文件本身除外)添加到 .helmignore 文件并再次推送一次。

在我的例子中,根本原因是非常出乎意料的:图表文件夹包含 xxxx.tgz 文件(存档文件被错误地留在了那里)并且在它被删除之前,我一直遇到这个错误。错误消息甚至离真正的根本原因还很远。它绝对大于配置上的 1Mb 限制。