Helm 配置自签证书并推送到 Harbor
配置自签证书
配置 helm registry login 命令需要的证书
从Helm 3开始,可以使用具有 OCI支持的容器注册中心来存储和共享chart包。从Helm v3.8.0开始,默认启用OCI支持。
即可以通过 Helm 将 chart 推到 Harbor 等具有 OCI 支持的容器注册中心。
如果 Harbor 使用自签证书开启了 https 的话,helm registry login <harbor address>
命令会执行失败,需要配置自签证书才能 login。
Helm 文档上有如下说明:
helm registry login
命令现在采用与Docker CLI相同的结构存储凭证。Helm和Docker CLI的注册表配置使用一样的路径。
Docker CLI 的注册表配置的路径为:/etc/docker/certs.d
,只需要将自签证书放到此目录下即可,目录结构:
harbor 内网主机名以 192.168.20.106 为例
etc
└─docker
└─certs.d
└─192.168.20.106
├─192.168.20.106.cert
├─192.168.20.106.key
└─ca.crt
配置 helm push/pull 命令需要的证书
方式一:每次都指定 --ca-file
参数
helm push <chart_name_and_version>.tgz oci://<harbor_address>/<project> --ca-file ca.crt
方式二:Linux 安装根证书
- 将 ca 证书拷贝到
/etc/pki/ca-trust/source/anchors/
文件夹中:
cp ca.crt /etc/pki/ca-trust/source/anchors/
- 运行
update-ca-trust
,更新系统的证书
update-ca-trust
- 推送到 oci 注册中心
helm push <chart_name_and_version>.tgz oci://<harbor_address>/<project>
推送到 Harbor 等基于 OCI 的注册中心
- 登录注册中心
helm registry login <harbor_address>
- 拉取 chart
helm pull oci://<harbor_address>/<project>/<chart_name> --version <version>
# 例如
# helm pull oci://demo.goharbor.io/oci/demo --version 0.1.0
- 推送 chart
helm push <chart_name_and_version>.tgz oci://<harbor_address>/<project>
# 例如
# helm push example-0.1.0.tgz oci://demo.goharbor.io/oci
- 安装 chart
helm install myrelease oci://<harbor_address>/<project>/<chart_name> --version <chart_version>