692 字约 2 分钟
登录 CNB Helm 制品库
CNB Helm 仅支持 OCI 格式的 Helm 制品,建议使用 Helm v3.8.0 以上版本,详情请查阅 Helm 文档。
登录命令如下。获取 CNB_TOKEN 的方式参考创建访问令牌。
helm registry login helm.cnb.cool -u cnb -p ${CNB_TOKEN}Helm 制品路径规则
Helm 制品发布到仓库时,支持两种命名规则:
- 同名制品:制品路径与仓库路径一致,如:
helm.cnb.cool/${CNB_REPO_SLUG_LOWERCASE} - 非同名制品:以仓库路径作为命名空间, 制品路径 = 仓库路径/制品名称,如
helm.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}/<ARTIFACT_NAME>
注意:使用 helm push remote 时,chart name 不出现在 remote-url 中,而是从 chart 中读取。 因此,同名制品的 remote-url 为 helm.cnb.cool/${CNB_GROUP_SLUG_LOWERCASE}, 非同名制品的 remote-url 为 helm.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}。
推送制品
本地推送
同名制品
helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/${CNB_GROUP_SLUG_LOWERCASE}非同名制品
helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/${CNB_REPO_SLUG_LOWERCASE}云原生构建中推送
main:
push:
- docker:
image: alpine/helm
stages:
- name: helm login
script: helm registry login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_HELM_REGISTRY}
- name: helm package
script: helm package ${YOUR_CHART_PATH}
- name: helm push
script: helm push oci://${CNB_HELM_REGISTRY}/${CNB_GROUP_SLUG_LOWERCASE}云原生开发中推送
同本地推送一致,将 ${YOUR_CHART_PATH}、${CNB_GROUP_SLUG_LOWERCASE}、${CNB_REPO_SLUG_LOWERCASE} 替换为实际值即可,详见上方本地推送。
使用制品
本地命令行拉取
helm pull oci://helm.cnb.cool/<ARTIFACT_PATH> --version <VERSION>
# ...其他常用命令
查看 Helm 信息
helm show all oci://helm.cnb.cool/<ARTIFACT_PATH> --version <VERSION>预览 manifest
helm template <RELEASE_NAME> oci://helm.cnb.cool/<ARTIFACT_PATH> --version <VERSION>安装 helm chart
helm install <RELEASE_NAME> oci://helm.cnb.cool/<ARTIFACT_PATH> --version <VERSION>升级 helm chart
helm upgrade <RELEASE_NAME> oci://helm.cnb.cool/<ARTIFACT_PATH> --version <VERSION>直链下载
除 helm pull 等 OCI 协议命令外,CNB 还提供通过 HTTP 直链下载 .tgz 文件的接口。 该接口返回 .tgz 文件流(不会产生 302 重定向),适用于仅支持裸 tarball 的下游系统。
URL 格式
直链 URL 格式如下:
# 同名制品
https://helm.cnb.cool/charts/<NAMESPACE>/v/<VERSION>.tgz
# 非同名制品
https://helm.cnb.cool/charts/<NAMESPACE>/<CHART_NAME>/v/<VERSION>.tgz其中 <NAMESPACE> 为仓库路径(如 ${CNB_REPO_SLUG_LOWERCASE}), <CHART_NAME> 为非同名制品的 chart 名称,<VERSION> 为制品版本号。
鉴权与示例
- 公开仓库:直接访问即可下载。
- 私有仓库:通过 HTTP Basic 认证访问,用户名为
cnb, 密码为访问令牌。
# 私有仓库下载非同名制品
curl -u cnb:${CNB_TOKEN} -fOJ \
"https://helm.cnb.cool/charts/${CNB_REPO_SLUG_LOWERCASE}/mychart/v/0.6.0.tgz"接口返回 .tgz 文件流(HTTP 200),不会产生重定向。 响应头 Content-Disposition 携带规范化的下载文件名 {CHART_NAME}-{VERSION}.tgz。
更多信息
更多 Helm 用法,参阅 Helm 官方文档。