Helm 制品库

# 登录 CNB Helm 制品库

CNB Helm 仅支持 oci 格式的 Helm 制品,建议使用 Helm v3.8.0 以上版本,详情请查阅 Helm 文档

您可以使用 CNB 的访问令牌作为登录凭据,登录命令:

helm registry login helm.cnb.cool -u cnb -p {token-value}

# Helm 制品路径规则

helm 制品在发布到某一仓库时,支持两种命名规则

  1. 同名制品 - 制品路径与仓库路径一致,如:helm.cnb.cool/{repository-path}
  2. 非同名制品 - 以仓库路径作为制品的命名空间,制品路径 = 仓库路径/制品名称,如:helm.cnb.cool/{repository-path}/{artifact-name}

注意:helm push remote 时,chart name 不出现在 remote-url 中,而是从 chart 中读取。

所以,同名制品的 remote-url 为 helm.cnb.cool/{group-path},非同名制品的 remote-url 为 helm.cnb.cool/{repository-path}

# 推送制品

# 本地推送

同名制品

# chart name 需与仓库同名
helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/{group-path}

非同名制品

helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/{repository-path}

# 云原生构建中推送

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 ${CNB_REPO_NAME}
        - name: helm push
          script: helm push oci://${CNB_HELM_REGISTRY}/${CNB_GROUP_SLUG_LOWERCASE}

# 云原生开发中推送

同名制品

# chart name 需与仓库同名
helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/{grou-path}

非同名制品

helm package chart-path
helm push chartname-version.tgz oci://helm.cnb.cool/{repository-path}

# 使用制品

# 本地命令行拉取

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 {my-release} oci://helm.cnb.cool/{artifact-path} --version {version}

# 安装 helm chart

helm install {my-release} oci://helm.cnb.cool/{artifact-path} --version {version}

# 升级 helm chart

helm upgrade {my-release} oci://helm.cnb.cool/{artifact-path} --version {version}

# 更多用法

更多 Helm 用法,请查阅官方文档