# 一、harbor开启支持helm chart
1、修改harbor配置文件
代码语言:javascript复制vim harbor.yml
chart:
# Change the value of absolute_url to enabled can enable absolute url in chart
absolute_url: enabled
2、停止harbor服务
代码语言:javascript复制docker-compose stop
3、注入配置
代码语言:javascript复制[root@localhost harbor]# ./prepare
4、安装chartmuseum
在执行install.sh安装脚本时,通过--with-chartmuseum参数安装chart插件。
代码语言:javascript复制[root@localhost harbor]# ./install.sh --with-notary --with-trivy --with-chartmuseum
5、验证
# 二、添加harbor作为chart仓库
添加的命令
代码语言:javascript复制[root@k8s-master01 repo]# helm repo add --username=admin --password=xxxxxxxx 1quant_harbor https://xxxxx:8443/chartrepo/library
查看验证
代码语言:javascript复制[root@k8s-master01 ~]# helm repo list
NAME URL
1quant_harbor https://xxxx:8443/chartrepo/library
aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
三、推送和拉取chart
Helm 要想推送 Chart 到 Helm 仓库,需要提前安装上传插件:
代码语言:javascript复制helm plugin install https://github.com/chartmuseum/helm-push
#或者离线安装
mkdir /root/.local/share/helm/plugins/helm-push
cp helm-push_0.9.0_linux_amd64.tar.gz /root/.local/share/helm/plugins/helm-push
tar zxvf /root/.local/share/helm/plugins/helm-push/helm-push_0.9.0_linux_amd64.tar.gz
helm plugin list #查看
创建项目并推送chart到harbor
代码语言:javascript复制# 然后创建一个测试的 Chart 进行推送测试:
helm create hello-helm
# 打包chart,将chart打包成tgz格式
helm package hello-helm
#推送
helm cm-push hello-helm-0.1.0.tgz --username=admin --password=xxxxx
#拉取
helm pull --username=admin --password=xxxx 1quant_harbor/hello-helm
# 安装
helm install test-helm --username=admin --password=xxxxx --version 0.1.0 1quant_harbor/hello-helm
注意事项
在 Harbor 2.0 版本中,存储库仓库是不支持直接更新索引文件的。相比于传统的 Helm Chart 仓库,Harbor 更专注于容器镜像的存储和分发,因此在 Harbor 中并没有直接支持索引文件的更新功能。
如果你需要更新存储在 Harbor 中的 Helm Chart,可以通过以下方式来实现:
重新上传 Helm Chart: 首先,你需要在本地重新构建或修改 Helm Chart,并生成一个新的 .tgz
文件。然后,使用 helm push
命令将新的 Helm Chart 上传到 Harbor 中。
helm push mychart-1.0.0.tgz my-repo
其中,mychart-1.0.0.tgz
是新生成的 Helm Chart 文件,my-repo
是你在 Helm 中配置的 Harbor 存储库名称。
更新存储库: 上传新的 Helm Chart 后,你需要更新 Helm 存储库的索引文件。在本地执行以下命令:
代码语言:javascript复制helm repo update
这将从存储库中下载最新的索引文件,以使 Helm 可以获取到最新的可用 Chart。
需要注意的是,由于 Harbor 主要用于容器镜像管理,而不是传统的 Helm Chart 仓库,因此在更新 Helm Chart 时需要手动重新上传并更新索引文件。