前言

在构建私有的 charts 仓库之前,有几个先决条件:

  • Helm 已经安装,版本号是 v3
  • 拥有一个 Github 账号

初始化仓库

在 github 仓库上新建一个仓库,我这里命名为 helm-charts,然后在安装有 helm 的系统中把克隆仓库下来。这些不用多说,都会 helm 了,git 肯定是小菜一碟。然后进入 helm-charts 目录,准备下一步的操作。

建立第一个 chart

进入我们克隆下来的仓库,当前仓库应该是空的。

cd helm-charts。

然后创建一个 chart,执行命令:

// confMap 是 chart 的名字
helm create confMap

创建完成后,删除初始化的 templates:

rm -rf confMap/templates/*

然后创建一个 k8s 的配置文件,我这里以 ConfigMap 用作示例:

// 创建confMap.yaml文件
touch confMap/templates/confMap.yaml
// confMap.yaml:
apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-test
data:
msg: "Hello World"

ok,这样一个简单的 confMap 就已经制作完成了,接下来打包一下:

helm package confMap

成功执行命令后会在当前目录下,也就是我们的仓库下看到打包后的文件 configMap-0.1.0.tgz

然后是最终要的一步,我们需要给 charts 建立一个索引,执行命令:

// 最后一个点是指当前目录
helm repo index .

之后会在当前目录生成一个 index.yaml:

apiVersion: v1
entries:
confMap:
- apiVersion: v2
appVersion: 1.16.0
created: "2023-09-19T15:42:01.365984446+08:00"
description: A Helm chart for Kubernetes
digest: 136fec3a25b800d0d850ca7536a00c1f1ba3e5a95a4e27854c7ad135a4b77d81
name: confMap
type: application
urls:
- confMap-0.1.0.tgz
version: 0.1.0
generated: "2023-09-19T15:42:01.365348311+08:00"

然后向 github 仓库推送所有文件,这步不在赘述,可以点击这里查看已经创建好的 charts。

启用 Github Pages

在 github 仓库中启用 pages,它可以把我们的仓库当作 Web 服务器对外提供服务。仓库 -> setting -> pages。在 pages 选择合适的分支即可:

安装 chart

之后我们就可以使用自己的仓库了,添加镜像:

helm repo add oldme https://oldme-git.github.io/helm-charts

执行安装:

helm install myconf oldme/confMap

查看结果

helm status myconf
// 结果
NAME: myconf
LAST DEPLOYED: Tue Sep 19 16:49:33 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

至此,我们就拥有了了一个私有的 helm 仓库。

Github 自建一个 Helm Charts 库的更多相关文章

  1. Helm 从入门到实践 | 从 0 开始制作一个 Helm Charts

    本周 Helm 官方发布博客,指导用户从 v2 迁移到 v3,这标志 Helm 逐渐走向成熟.早在今年 6 月,阿里云就正式发布了国内首个 Helm Hub 中国镜像站:开放云原生应用中心 - Clo ...

  2. 安利一个github上面的一个神级库thefuck,Linux命令敲错了,没关系,自动纠正你的命令

    没错就是这么神奇,名字相当噶性,thefuck.当你命令输入错误不要怕,直接来一句fuck,自动纠正你输入的命令. 在你输入错误的命令的时候,忍俊不禁的想来一句fuck,没错你不仅可以嘴上说,命令里面 ...

  3. 正式开放 | 阿里云 10 亿级镜像服务正式支持 Helm Charts,云原生交付再加速!

    作者 | 阿里巴巴高级开发工程师 谢于宁(予栖) 2018 年 6 月,Helm 正式加入了 CNCF 孵化项目: 2018 年 8 月,据 CNCF 的调研表明,有百分之六十八的开发者选择了 Hel ...

  4. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  5. JGUI源码:从头开始,建一个自己的UI框架(1)

    开篇 1.JGUI是为了逼迫自己研究底层点的前端技术而做的框架,之前对web底层实现一直没有深入研究,有了技术瓶颈,痛定思痛从头研究, 2.虽然现在vue技术比较火,但还在发展阶段,暂时先使用JQue ...

  6. 一文详解Hexo+Github小白建站

    作者:玩世不恭的Coder时间:2020-03-08说明:本文为原创文章,未经允许不可转载,转载前请联系作者 一文详解Hexo+Github小白建站 前言 GitHub是一个面向开源及私有软件项目的托 ...

  7. 如何手写一个js工具库?同时发布到npm上

    自从工作以来,写项目的时候经常需要手写一些方法和引入一些js库 JS基础又十分重要,于是就萌生出自己创建一个JS工具库并发布到npm上的想法 于是就创建了一个名为learnjts的项目,在空余时间也写 ...

  8. github如何删除一个(repository)仓库

    GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub.作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越 ...

  9. GitHub Top 100的Android开源库

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...

  10. oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏!

    oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏! ------------------------------------------------------------------ ...

随机推荐

  1. 自学 --day9---js中的数学操作和时间日期

    typora-copy-images-to: media 一.数学处理 1.Math常用API 圆周率 Math.PI // 3.1415926535 生成随机数 Math.random() 生成的是 ...

  2. 什么是RPC协议

    工作的时候,第一次接触CRPC协议,当时就很懵,啥是CRPC协议,一脸懵逼,于是就到网上去搜,填充知识空缺. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们 ...

  3. serdes集成流程前端

    serdes是 IP中间比较大的复杂的一个.集成前需要进行准备工作,千万不要一上来就写代码,这样非容易越写越差,先要做好规划,与合入计划. 1.收到IP材料后,第一时间检查内容都有哪些资料可以学习,使 ...

  4. [NOI online2022普及A] 王国比赛

    题目描述 智慧之王 Kri 统治着一座王国. 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧. 比赛由 \(n\) 道判断题组成,有 \(m\) 位大臣参加.现在你已经知道了所有大臣的答题情况, ...

  5. [GDOIpj221D] 小学生计数题

    第四题 小学生计数题 提交文件: counting.cpp 输入文件: counting.in 输出文件: counting.out 时间空间限制: 1 秒, 256 MB 作为 GDOI 的组题人, ...

  6. pinia持久化存储插件-pinia-plugin-persistedstate

    pinia-plugin-persistedstate 丰富的功能可以使 Pinia Store 的持久化更易配置: 与 vuex-persistedstate 相似的 API 所有 Store 均可 ...

  7. MySQL运维15-一主一从读写分离

    一.读写分离介绍 读写分离,是把数据库的读和写分开操作,以应对不同的数据库服务器.主数据库提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力. 二.一主一从原理 MySQL的主从复制是基 ...

  8. python获取已安装程序列表

    python获取已安装程序列表 本文主要讲述通过python脚本获取android 设备已安装列表. 首先,Python本身无法直接获取Android设备上已安装的程序列表,所以这里主要借助adb命令 ...

  9. Wifi BSSID获取

    代码很简单,通过wifiManager 获取wifiinfo,从而获取bssid, public static String getWifiSSID(Context context) { String ...

  10. 【Python】【OpenCV】定位条形码(二)moments和HuMoments

    根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域. cv2. ...