报错
- harbor版本:v2.8.2,docker-compose方式部署
- helm版本:v3.11.0
现需使用harbor存储helm chart包,但是按照之前步骤操作时会报错:
helm repo add harbor https://harbor.harbor.com/library
helm push skywalking-4.3.0.tgz harbor
解决
推送
在部署2.8版本的harbor时,install.sh
脚本中没有--with-chartmuseum
选项了,已经被移除了。
查看官方版本更新文档:https://github.com/goharbor/harbor/releases/tag/v2.8.0
harbor在v2.8.x版本中已经把helm charts
升级成了oci artifacts
。如果是从v2.7.x或者更低版本的harbor升级过来,需要先迁移到oci artifacts
。迁移步骤参考官方文档:https://github.com/goharbor/harbor/wiki/Migrate-helm-chart-to-oci-registry-in-Harbor
我是直接部署的harbor v2.8.2,不需要迁移。那应该怎么使用chart包呢?
github上有一个discusssion关于这个问题:https://github.com/goharbor/harbor/discussions/15057
也有个issue:https://github.com/goharbor/harbor/issues/18573
查看helm文档:使用基于OCI的注册中心 https://helm.sh/zh/docs/topics/registries/
查看helm registry命令:
所以正确的步骤如下:
helm registry login harbor.harbor.com
查看harbor推送命令:
helm package skywalking
helm push skywalking-4.3.0.tgz oci://harbor.harbor.com/wgh
推送成功。
再推送个镜像到project。
可以看到helm chart包和镜像都放在了镜像仓库选项中。而且在外层看不出哪个是镜像哪个是helm chart包。只有在查看Artifacts详细信息时才能看到。
再推送个镜像到wgh/skywalking中。
nerdctl -n k8s.io tag 26cffd376f50 harbor.harbor.com/wgh/skywalking:9.3.0
nerdctl -n k8s.io push harbor.harbor.com/wgh/skywalking:9.3.0
点击右上角的搜索,可以根据镜像或者chart来过滤。
拉取
拉取命令可以在harbor中复制。
helm pull oci://harbor.harbor.com/wgh/skywalking --version 4.3.0
ll skywalking-4.3.0.tgz