使用 Helm Cli 将 chart 推送到 Harbor

news2025/1/22 22:51:28

使用 Helm Cli 将 chart 推送到 Harbor

背景问题

努力寻找适用于特定版本的 Harbor 和 Helm 的文档。

我尝试添加我的仓库(repo)

helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword

目前没有问题。

然后尝试在本地目录(.tgz 文件)中推送图表(chart)

helm push myhelmchart.tgz harbor

我收到错误Error: scheme prefix missing from remote (e.g. "oci://")

如果我尝试

helm push myhelmchart.tgz oci://harbor

我收到错误dial tcp: lookup harbor: no such host

如果尝试:

helm repo add harbor oci://myharbor.mydomain.com/chartrepo/myproject --username myusername --password

我收到错误looks like oci://myharbor.mydomain.com/chartrepo/myproject is not a valid chart repository

如果尝试直接推送,而不使用已注册的repo

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject

收到错误消息Error: unexpected status: 401 Unauthorized

如果先登录…

helm registry login myharbor.mydomain.com/chartrepo/myproject
Username: myusername
Password: mypassword
Login Succeeded

再次尝试 push

helm push myhelmchart.tgz oci://myharbor.mydomain.com/chartrepo/myproject

相同的错误Error: unexpected status: 401 Unauthorized

我的目标是能够将 helm chart 推入 Harbor 并让它们显示在下面区域中:

解决方案

helm chart 推送到 Harbor 有三种选择

  1. 可以安装 helm 插件chartmuseum/helm-push并使用它来将 Helm chart 推送到 Harbor
  2. 您在本地使用 helm package 创建 Helm Chart 并通过 Harbor UI 上传文件tgz
  3. 从 Helm 3.8 版开始,支持从符合 OCI 标准的容器注册表(例如 Harbor)中推送和拉取 Charts。但是 3.7.1 中是实验特性,需要加环境变量HELM_EXPERIMENTAL_OCI=1开启

为了将来安全起见,建议切换到选项 3,因为 Chartmuseum 已在 Harbor 中标记为已弃用。

Helm 3.7.1 push pull 示例

以下是如何将 Helm 3.7.1 版本 Chart push/pull 到 harbor 2.1.0 OCI 兼容的注册表的简要说明

将 Helm Chart 推送到 OCI 注册表

先登录:

HELM_EXPERIMENTAL_OCI=1 helm registry login -u myusername container-registry.com -p mypassword
  • container-registry.com为你自己的注册表地址
  • -u后加用户名
  • -p后加密码。

然后推送:

HELM_EXPERIMENTAL_OCI=1 helm push harbor-1.7.4.tgz oci://container-registry.com/proj
  • harbor-1.7.4.tgz 是要推送的 chart 包;
  • container-registry.com为你自己的注册表地址;
  • proj 是你的项目名称

示例:

# 登录
HELM_EXPERIMENTAL_OCI=1 helm registry login harbor.test.ss.cn -u admin -p test123

# 推送
HELM_EXPERIMENTAL_OCI=1 helm push capo-0.1.0.tgz oci://harbor.test.ss.cn/cloudnative

推送后,harbor 2.1.0 显示在了 Repository 下,而不是 Helm Charts 下:

从 OCI 注册表中拉取并安装 Helm Chart

helm pull oci://container-registry.com/proj/harbor --version 1.7.4
  • container-registry.com为你自己的注册表地址;
  • harborchart包名称,1.7.4harbor chart 包版本;
  • proj 是你的项目名称

**提醒:**这是将文件tgz pull 到当前目录。与先添加 repo 然后拉取,再次执行安装 Chart 的繁琐操作不同。

**温馨提示:**上述操作在 v3.6.3 版本的 helm 上 pull 时会报错。在 v3.4.2 版本的 helm pull 会提示Error: scheme "oci" not supported

您可以使用 OCI 注册表一次完成所有操作:

helm install myrelease oci://container-registry.com/container-registry/harbor --version 1.7.4

template和的相同程序upgrade

oci://协议也可用于各种其他子命令。这是一个完整的列表:

helm pull
helm show
helm template
helm install
helm upgrade

Helm 文档有一个包含更多 OCI 相关示例的页面。

Helm 3.7.1 安装 helm-push 插件

使用以下命令下载并安装 helm-push 插件:

helm plugin install https://github.com/chartmuseum/helm-push

确保您已使用以下命令将 Harbor 存储库添加到 helm:

helm repo add myccrepo https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypassword

请注意 url 中的 /chartrepo,这很重要且没有很好的文档说明,但需要让 Chart 显示在 Harbor 的 Helm Charts 下

使用以下命令将 Chart 推送到 Harbor:

$ helm cm-push myhelmchart-0.1.0.tgz myccrepo
Pushing myhelmchart-0.1.0.tgz to myccrepo...
Done.

检查 Harbor project -> helm charts,这样推送后,是存储在 Helm Charts 下,而非 Repository 下:

参考

How to push a helm chart to Harbor using Helm CLI V3.7.2 and Harbor 2.4.0-d4affc2

说明

请关注 危 ❤ 工中号【进击云原生】,更有 free 资源供您学习

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NXP iMX8M Plus M7核心FreeRTOS开发

By Toradex胡珊逢 Toradex 的 Verdin iMX8M Plus 计算机模块采用 NXP 的 iMX8M Plus 处理器。该 CPU 除了有支持 AI 硬件加速单元的 NPU 外,还配置了一个 M7 微控制器。相比于 iMX 8 QuadMax 处理器上时钟频率为 266MHz 的M4 微控制器, 该M7 的时钟频率…

Java基础39 Object类(节选)

ObjectObject类一、 equals( )● 与 equals的对比(☆)二、hashCode( )三、toString( )四、finalize( )Object类 Object类:Java中lang包的类,是类层次结构的根类,每个类都使用Object作为超类。所有对象(包…

【2015NOIP普及组】T3:求和 试题解析

【15NOIP普及组】求和 时间限制: 1000 ms 内存限制: 131072 KB 【题目描述】 一条狭长的纸带被均匀划分出了n个格子,格子编号从1到n。每个格子上都染了一种颜色colori用[1,m]当中的一个整数表示),并且写了一个数字numberi。 定义一种特殊的三元组:(x,y,z),其中x,…

Java架构该如何进阶?还在东拼西凑的学习?这份进阶指南相信会对你有所帮助,十多位资深大佬独家秘籍一并传授!

如何成为一名架构师? 笔者认为,想成为一名架构师,首先第一点必然是你的技术足够优秀,知识的深度和广度足够,遇到问题能很快从脑海中寻找出最合适的解决之道。其次,架构师会从整体上领导项目,与人打交道必不可少,因此…

区块链baas平台告警方案

前言 在《24*7动态化监管为“链”站岗》中,我们介绍了区块链动态化监控中心,如果说监控的作用是防患于未然,那么告警则是当异常发生时第一时间触发运维人员的关键,可充分降低监控对象异常的时间,最大化降低因异常给区…

深度解析KubeEdge EdgeMesh 高可用架构

摘要:通过高可用特性应用场景、高可用特性使用手册、课题总结、未来展望等四个部分的内容来向大家介绍新版本EdgeMesh的高可用架构。本文分享自华为云社区《KubeEdge EdgeMesh 高可用架构详解|KubeEdge云原生边缘计算社区》,作者:南开大学&am…

【计算机视觉OpenCV基础】实验二 基元检测

实验二 基元检测 计算机视觉OpenCV基础实验合辑(实验1234扩展) 资源下载地址: https://download.csdn.net/download/weixin_53403301 合辑:(加在下载地址后面) /87113581 讲义(包括理论、图例、…

[附源码]SSM计算机毕业设计火车售票系统论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

antd table 表格滚动高度适配

文章の目录问题产生背景如何解决写在最后问题产生背景 在开发一个后台管理系统,某一页面用到了table表格,产品的需求是: table表格无论展示多少条数据,表头和分页信息要展示出来 此时我们一定首先想到了table表格的 scroll 属性…

【设计模式】原型模式

原型模式属于创建型模式,主要作用是利用一个原型对象的克隆方法,在保证性能的情况下创建多个重复的对象,本质就是通过克隆一个原有的对象来复制出一个新对象。 文章目录原型模式的介绍使用场景原型模式的实现类图实现方法第一步,编…

一文解决 Go 安装和常用环境变量的配置

一文解决 Go 安装和常用环境变量的配置下载链接Windows 操作系统下安装Linux 操作系统下安装安装多个 Go 版本常用环境变量的解释结尾耐心和持久胜过激烈和狂热。 下载链接 官网:https://golang.org/dl中国大陆的镜像站点:https://golang.google.cn/dl/…

跨境电商卖家只青睐亚马逊?其实你不知道,“备胎”早已选好!(Starday)

跨境电商平台作为一个新的国际贸易形态,打破传统贸易形态的方式,将互联网与外贸交易相结合,从而大大降低外贸的运营成本,因此在这两年逐渐燃爆电商行业,让许多行业的人趋之若鹜,从观察中我们可以发现&#…

线性插值方法

插值,通俗来说当在一个离散的事件中,想知道某一个位置确定的值时,就可以利用插值方式计算得到,即利用已知数据估计未知位置数值。插值的方式有很多,下面介绍几种常用的插值方式。 一、最近邻插值(Nearest Neighbour …

矩阵分析:特征值分解都在这里了

矩阵分析:特征值分解前置知识空间变换伸缩旋转对称矩阵对称矩阵对角化正交矩阵向量的基基变换不同基下的向量变换逆矩阵不同基下的空间变换内积的几何意义特征值、特征向量特征值分解代码前置知识 空间变换 伸缩 一个矩阵其实就是一个线性变换,因为一个…

借道元宇宙 一汽-大众揽巡打造沉浸式上市体验

11月18日,一汽-大众以元宇宙科技为载体,举行了行业首场元宇宙游戏形式的“巡梦之旅”线上虚拟发布会,宣布旗下“硬核大五座SUV”揽巡Tavendor正式上市。全新揽巡共提供330TSI 精英巡行版、330TSI 豪华巡逸版、380TSI 四驱R-Line 巡游版、380T…

代码库制作与使用

静态库 假定有以下目录结构,main.c 为src测试文件,所以要调用src目录下的四个文件。我们可以把src打包成一个静态库供main.c使用 tree 命令展示目录结构制作 1.先把目标代码编译生成.o文件 需要包含头文件,否则会报错,使用-I来…

dB family cheat sheet: dB, dBW, dBm, dBi, dBc, etc

目录 1. dB 2. dBi 3. dBW和dBm 4. dBc(Decibel relative to carrier power level) 5. dBuV(dB over 1 microvolt), dBmV(dB over 1 millivolt) 6. 功率、电压、匹配阻抗 7. dBFS 1. dB dB用于表示功率之间的对数比率,所以它没有单位,其定义为&am…

【2022.11最新】Python疫情数据采集 + 可视化展示

嗨害大家好鸭!我是小熊猫 最近我又又又在家里居家办公了 闲来无事,用python采集一下 再做个可视化 康康现在疫情如何 源码、资料素材电子书点击这里 知识点: 1. 爬虫基本流程 2. requests 发送请求 3. re 正则表达式 4. json 结构化数据解析 5. pyech…

【深度学习】CycleGAN开源项目学习笔记 | 完整流程 | 报错总结 | pytorch

文章目录前言一、下载项目,文件结构观察二、数据集下载三、训练3.1、训练初体验3.2、命令行输入参数3.3、继续训练命令四、预测4.1、使用自己训练完的权重文件进行预测4.2、使用网上的预训练文件进行预测前言 你敢想象,就是这么一个简单的开源网站&…

南卡电容笔和绿联哪款更好用?性价比高的电容笔推荐

随着生活节奏逐渐加快,从而Apple Pencil的出现引来了不少热度,不过Apple Pencil由于价格昂贵,让不少用户望而止步。然而现在出现了平替电容笔,而且品牌众多,有很多百元左右的平替电容笔,性能和配置都做的不…