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>