当前位置: 首页 > news >正文

如何使用极狐GitLab 软件包仓库功能托管 helm chart?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网

软件包库中的 Helm charts (BASIC ALL)


WARNING:Helm chart 库正在开发中,由于功能有限,尚未准备好用于生产。

在项目的软件包库中发布 Helm chart。然后在需要将它们用作依赖项时安装它们。

构建 Helm 包


在 Helm 文档中阅读有关这些主题的更多信息:

  • 创建您自己的 Helm chart
  • 将 Helm chart 打包成 chart 存档

对 Helm 库进行身份验证


要对 Helm 库进行身份验证,您需要:

  • 个人访问令牌,其范围设置为api。

  • 部署令牌,其范围设置为 read_package_registrywrite_package_registry 或两者均有。

  • CI/CD 作业令牌。

发布软件包


NOTE:您可以发布具有重复名称或版本的 Helm chart。如果存在重复项,系统总是返回最新版本的 chart。

构建完成后,可以使用 curlhelm cm-push 将 chart 上传到所需的 channel:

使用 curl

curl --request POST \--form 'chart=@mychart-0.1.0.tgz' \--user <username>:<access_token> \https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/api/<channel>/charts
  • <username>:GitLab 用户名或部署令牌用户名。

  • <access_token>:个人访问令牌或部署令牌。

  • <project_id>:项目 ID(如 42)或 URL-encoded 项目路径(如group%2Fproject)。

  • <channel>:channel 的名称(如 stable)。

使用 helm cm-push 插件:

helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm cm-push mychart-0.1.0.tgz project-1
  • <username>:GitLab 用户名或部署令牌用户名。

  • <access_token>:个人访问令牌或部署令牌。

  • <project_id>:项目 ID(如 42)。

  • <channel>:channel 的名称(如 stable)。

发布频道

您可以将 Helm 包发布到极狐GitLab 中的频道。频道是一个方法,您可以使用它来区分 Helm 包库。例如,您可以使用 stabledevel 作为频道,以允许用户添加 stable 仓库,而 devel 仓库是隔离的。

使用 CI/CD 发布 Helm 包


要通过 GitLab CI/CD 自动发布 Helm 包,您可以使用 CI_JOB_TOKEN 代替命令中的个人访问令牌。

例如:

image: curlimages/curl:lateststages:- uploadupload:stage: uploadscript:- 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@mychart-0.1.0.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/<channel>/charts"'
  • <username>:GitLab 用户名或部署令牌用户名。

  • <access_token>:个人访问令牌或部署令牌。

  • <channel>:channel 的名称(如 stable)。

安装软件包


NOTE:当请求一个包时,系统只考虑最近创建的 1000 个包。对于每个包,只返回最近的包文件。

要安装最新版本的 chart,请使用以下命令:

helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm install my-release project-1/mychart
  • <username>:GitLab 用户名或部署令牌用户名。

  • <access_token>:个人访问令牌或部署令牌。

  • <project_id>:项目 ID(如 42)。

  • <channel>:channel 的名称(如 stable)。

如果先前已添加仓库,则可能需要运行:

helm repo update

使用最新可用的 chart 更新 Helm 客户端。

有关更多信息,请参阅使用 Helm。

故障排查


上传后,chart 在软件包库中不可见

检查 Sidekiq 日志是否有任何相关错误。如果您看到 Validation failed: Version is invalid,则表示您的 Chart.yaml 文件中的版本不符合 Helm Chart 版本规范。
要修复错误,请使用正确的版本语法并再次上传 chart。

helm push 导致错误

Helm 3.7 为 helm-push 插件引入了重大更改。您可以更新 Chart Museum plugin,使用 helm cm-push

相关文章:

  • 实践005-Gitlab CICD全项目整合
  • Java并发编程几个问题的解答
  • 在登录页面上添加验证码
  • 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)
  • NetSuite 如何得到所有Item最近一次采购订单的货品单价?
  • 不再踩坑!React.memo正确用法及性能优化实战
  • AI时代企业应用系统架构的新思路与CIO变革指南
  • 21、魔法传送阵——React 19 文件上传优化
  • 轻量级证件照制作 AI 工具 HivisionIDPhotos 介绍
  • 单片机自动排列上料控制程序 下
  • DSP28335 串口中断收发及FIFO使用
  • 剖析 FFmpeg:从基本功能到过滤器,实现音视频处理的灵活性
  • 国内云内网接入方案
  • JAVA房屋租售管理系统房屋出租出售平台房屋销售房屋租赁房屋交易信息管理源码
  • linux中的常用命令(一)
  • 运维打铁:服务器分类及PHP入门
  • ElasticSearch基本概念
  • 手撕基于AMQP协议的简易消息队列-8(单元测试的编写)
  • 【即插即用涨点模块】DSConv动态蛇形卷积:自适应聚焦细长弯曲的局部结构特征,助力分割高效提点【附源码+注释】
  • 从简历筛选到面试管理:开发一站式智能招聘系统源码详解
  • 王日春已任教育部社会科学司司长,此前系人教社总编辑
  • “80后”海南琼海市长傅晟,去向公布
  • 中方对原产印度进口氯氰菊酯实施反倾销措施,商务部回应
  • 李云泽:再批复600亿元,进一步扩大保险资金长期投资试点范围
  • 是谁提议特朗普向好莱坞征税?
  • 习近平致电祝贺默茨当选德国联邦总理