0

正在努力寻找适用于特定版本的 Harbor 和 Helm 的文档。

我试过添加我的回购......

Helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword

目前没有问题

然后我尝试在本地目录(.tgz 文件)中推送图表

Helm push myhelmchart.tgz harbor 

我收到一个错误“错误:远程缺少方案前缀(例如“oci://”)

如果我尝试

Helm push myhelmchart.tgz oci://harbor 

我收到错误“拨号 tcp:查找港口:没有这样的主机”

我试过了

helm repo add harbor oci://myharbor.mydomain.com/chartrepo/myproject --username myusername --password 

我收到一个错误“看起来 oci://myharbor.mydomain.com/chartrepo/myproject 不是有效的图表存储库”

如果我只是尝试直接推送而不使用注册的仓库

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject

我收到错误“错误:意外状态:401 未经授权”

如果我先登录...

helm registry login myharbor.mydomain.com/chartrepo/myproject
Username: myusername
Password: mypassword
Login Succeeded

再次推动的尝试

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject

相同的错误“错误:意外状态:401 未经授权”

我的目标是能够将掌舵图推入 Harbour 并让它们出现在该区域... 在此处输入图像描述

4

2 回答 2

0

舵图可以通过三种方式推送到 Harbor

  1. 正如您正确发现的那样,您可以安装 helm 插件chartmuseum/helm-push并使用它将 Helm chart 推送到 Harbor
  2. 您在本地创建 Helm Chart并通过 Harbor UIhelm package上传文件tgz
  3. 从 3.8 版开始,Helm 支持从符合 OCI 的容器注册中心(如 Harbor)推送和拉取图表。

为了将来的安全,我建议您切换到选项 3,因为 Chartmuseum 在 Harbor 中已被标记为已弃用。

以下是如何将 Helm Chart 推/拉到符合 OCI 的注册中心的简要说明

将 Helm Chart 推送到 OCI 注册表:

helm registry login -u user container-registry.com
helm push harbor-1.7.4.tgz oci://container-registry.com/container-registry

从 OCI 注册表中提取并安装 Helm Chart:

helm pull oci://container-registry.com/container-registry/harbor --version 1.7.4

这是将文件拉到tgz您的当前目录。与您首先添加一个 repo 并从中提取以便能够安装 Chart 的常见方法不同,您可以使用 OCI 注册表一次性完成所有操作:

helm install myrelease  oci://container-registry.com/container-registry/harbor --version 1.7.4

template和的相同程序upgrade

oci://协议也可用于各种其他子命令。这是一个完整的列表:

helm pull
helm show
helm template
helm install
helm upgrade

Helm 文档有一页包含更多与 OCI 相关的示例

于 2022-02-17T16:52:58.080 回答
0

找到了一个解决方案,它确实需要一个 helm 插件,但它可以工作!

使用以下命令下载并安装 helm-push 插件:

helm plugin install https://github.com/chartmuseum/helm-push

确保您已使用以下命令将 Harbor 存储库添加到 helm:

Helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword

请注意 url 中的 /chartrepo,这很重要并且没有很好的文档记录,但需要让图表显示在 Harbor 的 Helm Charts 下

使用以下命令将您的图表推送到 Harbor:

Helm cm-push myhelmchart.tgz harbor

检查 Harbor 项目 - helm 图表

在此处输入图像描述

于 2022-02-16T18:55:39.183 回答