在牧场主的私有目录中,模板文件未显示

In rancher's private Catalogs Template files are not shown

在 Rancher 的情况下,私有目录被添加并且私有目录也被显示,但是无法访问与私有目录关联的 helm charts。如果我 select 一个目录,我找不到列出的模板文件。

如果我们将相同的 helm chart 放在 public 目录中,模板文件将被列出。很明显,问题出在 Rancher 而不是 helm charts。 我尝试将 helm chart 放在不同的私有存储库上,例如 ACR 和 git 私有存储库,但问题仍然存在,因此也排除了注册表的问题。

重现步骤:

1) 创建私有应用程序目录(任意,但我使用了 ACR)
2) 通过提供正确的凭据将应用程序目录添加到 Rancher。
3) 去启动应用程序
4) helm 图表(在前面的步骤中推送)被列出。
5) 尝试启动应用程序。

结果:

您发现没有列出模板文件(Values.yml、Deployment.yml等未列出) Rancher Server 日志

[ERROR] Failed to load chart: Error fetching helm URLs: [Error in HTTP GET of [_blobs/.tgz], error: Get //user:*@_blobs/**-0.1.0.tgz: unsupported protocol scheme ""]

当图表尝试读取 index.yml 然后尝试获取 *.tar.gz 文件时,我收到一个不受支持的协议模式错误

这个问题似乎与其他问题有关,例如:https://github.com/rancher/rancher/issues/15671

我们需要使用 Rancher Charts 才能让图表正确地列在 Rancher 的应用目录中。 Rancher Chart 和 Helm Chart 有一些差异,列在此处:https://rancher.com/docs/rancher/v2.x/en/catalog/custom/creating/

在Rancher中有两种使用图表的方式:

  • 需要 GIT 服务器响应 GET 请求的 Helm 图表方式(图表与 index.yml 文件一起存储为 tar.gz 文件)。
  • Rancher chart 方式,其中图表作为普通文件存储(按原样存储整个 helm chart 文件夹,无需像 helm chart 方式那样将其压缩)在 GIT 服务器上。

在我的例子中,我有 tar.gz 文件,其中包含舵图和 index.yml 文件,用于呈现图表。仅当有一些外部服务器响应从 index.yaml 中找到图表的 GET 请求时,Rancher 才支持这种方式。 Github 页面支持此功能,这就是我能够在 Rancher 中使用 helm chart 的原因。

解决方案:我解压缩 tar 并直接上传到 GIT 上的文件夹,并在 Rancher 中使用此 GIT 存储库以在应用程序目录下正确列出图表。

请记住在应用程序目录中定义的 url 末尾使用 .git。