如何使用 Helm CLI V3.7.2 和 Harbor 2.4.0-d4affc2 将 Helm Chart 推送到 Harbor

pfo*_*off 10 kubernetes-helm harbor

正在努力寻找与特定版本的 Harbor 和 Helm 相关的文档。

我尝试添加我的存储库...

Helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword
Run Code Online (Sandbox Code Playgroud)

到目前为止没有问题

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

Helm push myhelmchart.tgz harbor 
Run Code Online (Sandbox Code Playgroud)

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

如果我尝试

Helm push myhelmchart.tgz oci://harbor 
Run Code Online (Sandbox Code Playgroud)

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

我试过

helm repo add harbor oci://myharbor.mydomain.com/chartrepo/myproject --username myusername --password 
Run Code Online (Sandbox Code Playgroud)

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

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

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject
Run Code Online (Sandbox Code Playgroud)

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

如果我先登录...

helm registry login myharbor.mydomain.com/chartrepo/myproject
Username: myusername
Password: mypassword
Login Succeeded
Run Code Online (Sandbox Code Playgroud)

再次尝试推动

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject
Run Code Online (Sandbox Code Playgroud)

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

我的目标是能够将舵图推入港口并让它们出现在这个区域...... 在此输入图像描述

Vad*_*imo 15

如何将舵图推送到 Harbor 有三种选择

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

为了将来安全起见,我建议您切换到选项 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
Run Code Online (Sandbox Code Playgroud)

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

helm pull oci://container-registry.com/container-registry/harbor --version 1.7.4
Run Code Online (Sandbox Code Playgroud)

这会将tgz文件拉到当前目录。与常见方法不同的是,您首先添加一个存储库并从中提取数据以便能够安装图表,您可以使用 OCI 注册表一次性完成这一切:

helm pull oci://container-registry.com/container-registry/harbor --version 1.7.4
Run Code Online (Sandbox Code Playgroud)

template和 的程序相同upgrade

oci://协议还可以在其他各种子命令中使用。这是一个完整的列表:

helm pull
helm show
helm template
helm install
helm upgrade
Run Code Online (Sandbox Code Playgroud)

Helm 文档中有一个页面包含更多 OCI 相关示例


bzd*_*111 10

添加港口仓库

helm repo add --username=username --password=xxxx myrepo https://harbor.xxxx.cn/chartrepo/xxxx
Run Code Online (Sandbox Code Playgroud)

创建图表

helm create  xxxxxx
Run Code Online (Sandbox Code Playgroud)

图表目录中的 Lint 图表

helm lint . 
Run Code Online (Sandbox Code Playgroud)

图表目录中的包图表

helm package .
Run Code Online (Sandbox Code Playgroud)

安装推送插件

helm plugin install https://github.com/chartmuseum/helm-push
Run Code Online (Sandbox Code Playgroud)

将图表推送到仓库

helm cm-push xxxxxx-0.1.0.tgz myrepo
Run Code Online (Sandbox Code Playgroud)


pfo*_*off 8

找到了一个解决方案,它确实需要一个 helm 插件,但它有效!

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

helm plugin install https://github.com/chartmuseum/helm-push
Run Code Online (Sandbox Code Playgroud)

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

Helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword
Run Code Online (Sandbox Code Playgroud)

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

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

Helm cm-push myhelmchart.tgz harbor
Run Code Online (Sandbox Code Playgroud)

检查 Harbor 项目 - helm 图表

在此输入图像描述