helm 失败,创建失败:机密"sh.helm.release.v1.(release-name).v1"无效:数据:太长:最多必须包含1048576字符



我正在尝试安装一个helm版本,使用以下命令

helm upgrade --install --reset-values {release-name} ../chart --namespace test01 --values /tmp/values737957648

未包装的图表以展开形式保存。

这失败了,出现了以下错误,基本上是试图存储发布信息

sh.helm.release.v1.{release-name}.v1" is invalid: data: Too long: must have at most 1048576 characters

如何调试这个问题?

如果我尝试生成图表的模板并创建kubectl,它会安装得很好。即

helm template {release-name} chart --namespace test01 --values /tmp/values737957648 >> test1.yaml
kubectly create test1.yaml  (No configmap/No secret limit issue)

当试图通过helm安装时出现问题,并且它试图创建helm秘密

我该如何解决这个问题?

我使用的是头盔版

helm version
version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", 
GitTreeState:"clean", GoVersion:"go1.13.5"}

在我的案例中,根本原因非常出乎意料:图表文件夹包含xxxx.tgz文件(错误地留在那里的存档文件(,直到它被删除,我一直收到这个错误。错误消息甚至没有接近真正的根本原因。

这个答案直接来自:https://jhooq.com/helm-chart-failed-to-create/

此问题背后的根本原因可能是以下原因之一-

  1. Helm发布名称由大写组成(ex-hem安装demoChart helloworld(
  2. Helm发布名称由空格组成(ex-hem安装演示Charthelloworld(
  3. 头盔发布名称由特殊字符组成(前头盔安装demoCh@rt你好世界(

在我的例子中,我的图表名称中有下划线。当我用短划线替换下划线时,图表部署得很好

在我的情况下;img/";包含一些图像的目录。。。周末我添加了许多大的png文件。。。并且出现了类似的错误。。。

% helm upgrade --install {release name} {mychart} -f values-mychart-custom.yaml --debug
    history.go:56: [debug] getting history for release mychart
    Release "mychart" does not exist. Installing it now.
    install.go:178: [debug] Original chart version: ""
    install.go:199: [debug] CHART PATH: Library/Caches/helm/repository/mychart-1.0.0.tgz
Error: create: failed to create: Secret "sh.helm.release.v1.mychart.v1" is invalid: data: Too long: must have at most 1048576 bytes
helm.go:88: [debug] Secret "sh.helm.release.v1.mychart.v1" is invalid: data: Too long: must have at most 1048576 bytes
create: failed to create
helm.sh/helm/v3/pkg/storage/driver.(*Secrets).Create
    helm.sh/helm/v3/pkg/storage/driver/secrets.go:164
helm.sh/helm/v3/pkg/storage.(*Storage).Create
    helm.sh/helm/v3/pkg/storage/storage.go:69
helm.sh/helm/v3/pkg/action.(*Install).RunWithContext
    helm.sh/helm/v3/pkg/action/install.go:340
main.runInstall
    helm.sh/helm/v3/cmd/helm/install.go:265
main.newUpgradeCmd.func2
    helm.sh/helm/v3/cmd/helm/upgrade.go:124
github.com/spf13/cobra.(*Command).execute
    github.com/spf13/cobra@v1.2.1/command.go:856
github.com/spf13/cobra.(*Command).ExecuteC
    github.com/spf13/cobra@v1.2.1/command.go:974
github.com/spf13/cobra.(*Command).Execute
    github.com/spf13/cobra@v1.2.1/command.go:902
main.main
    helm.sh/helm/v3/cmd/helm/helm.go:87
runtime.main
    runtime/proc.go:255
runtime.goexit
    runtime/asm_amd64.s:1581

loooong的一天做了一个丑陋的Helm调试之后;img/";文件夹从图表目录中移出,所有操作都重新开始。。。。

因此:请将您出色的文档和非相关的Helm图表文件保存在您开发图表的charts/*目录之外

:(

线索:生成清单文件,应用它们并检查是否正确

% helm template mychart chart --values ./values.yaml > debug.yaml
% kubectl apply -f debug.yaml
% kubectl delete -f debug.yaml

我做了一个du . --block-size=KB,令人惊讶的是,有一个.kube文件夹,里面有很多数据,删除这些数据后,问题就解决了。

我今天遇到了类似的问题,这是因为我的helm目录中有一些额外的文件。

例如:debug.log或my_readme.txt

我删除了所有与舵图无关的文件,效果很好。

Helm错误具有误导性

将所有文件移出helm目录,然后尝试将它们分小块移回,以查看哪个文件夹/文件包含此问题。或者,使用du -sh $(ls -A)命令查找大文件夹或文件。

将隐藏的.git目录添加到.hemignore文件中解决了我的问题,并显示了与问题标题中相同的错误消息。

.helmlignore内容示例:

*.txt
.git

检查helm图表文件夹中是否有任何未使用的helm文件。在我的案例中,我不小心下载了一些大尺寸的二进制文件,它也引起了类似的问题。

在我的案例中,问题出在.git文件夹
使用.helmnignore文件是忽略不需要的文件的解决方案:

https://helm.sh/docs/chart_template_guide/helm_ignore_file/

删除您试图安装的.tgz文件对我来说很有效。

相关内容

最新更新