helm-charts官网索引

chart编写

官网文档

图片.png

chart开发技巧和窍门:https://helm.sh/docs/howto/charts_tips_and_tricks/
注册中心:https://helm.sh/zh/docs/topics/registries/
内置对象: https://helm.sh/zh/docs/chart_template_guide/builtin_objects/

chart管理

创建
helm create chartapp
helm create --starter mychart 指定入门chart
打包
helm package chartapp
查看 chart信息
helm lint chartapp
下载char
helm pull chartrepo/chartname
查看helm 发现名称 上传到kubernetes的所有资源
helm get manifest full-coral
测试模板渲染而又没有真正安装任何东西,编写chart时,调试看模板渲染后的效果,不做真正的部署处理
helm install --debug --dry-run goodly-guppy ./mychart

处理yaml缩减的方式
方式1, - 去头去尾的空格,注意也包括换行符 {{- .values.test }}
方式2,使用缩减函数实现 {{ indent 4 $lots_of_text }}
在模块中定义变量等类似没有输出操作的行时,用{{- test := .values.test -}}
在希望当前输出行同上一行同一缩进时,用{{- $test }}

官网文档内容索引

  • topics: 主题:介绍chart
    • charts 介绍charts
      • chart的目录结构
      • 多chart的依赖
      • 预定义的变量
    • charts Hooks 在安装,更新,回滚,创建,删除等等时,在操作前后,设置chart拉钩处理动作
    • charts test helm install quirky-walrus wordpress --namespace default helm test quirky-walrus 测试已安装chats POD的运行情况
    • library charts 创建charts的简单步骤
    • Helm provenance and integrity helm出处和完整性 验证helm charts完整性方式介绍
    • the chart repository guide chart存储仓库指南,说明仓库文件目录结构,打包chart,生成新的index文件,把新的chart加入到现有的chart仓库中。
      • helm repo index --help 构建仓库索引相关参数
    • registries 注册 helm3开始之初OCI进行远程分发,通用支持helm的docker镜像仓库,目前是实验性功能
    • helm architecture helm架构
      • helm 目的 用于管理kubernetes软件包工具
      • 组件
        • 客户端:本地helm开发,管理存储库,管理发布,与helm库节点对接
        • helm库:执行所有helm操作逻辑,与kubernetes API连接,结合helm配置已经构建发布,按应用安装到kubernetes并提供后续发行,通过与k8s交换来升级和卸载应用
    • advanced helm techniques 先进的Helm技术 提供GO通过SDK开发示范
    • kubernetes distribution guide k8s发行指南,介绍怎样同各种不同部署方式的k8s结合
    • role-based access control k8s 角色访问控制介绍
    • the helm plugins guide helm插件指南 介绍插件安装,组成,helm环境变量,自动补全
    • migrating helm V2 to V3 helm从V2迁移到V3的改变,
    • deprecated kubernetes APIs 不推荐使用的k8s API;不要使用apiVersion: apps/v1beta1,更新发布清单的api版本
    • helm version support policy helm与k8s的版本支持政策,n-3策略,3版本对应k8s 1.16.2,那么共支持1.16-1.13的k8s
    • permissions management for sql storage backend SQL存储后端的权限管理;默认helm是利用k8s的RBAC功能;使用sql存储后端时,不能与k8s的角色累确定用户是否可以访问给定的资源。
    • release schedule policy 发布时间政策,同k8s一样,每4个月发布一次版本
  • best practices: 最佳实践
    • general conventions 一般惯例
      • chart 名称必须小写字母和数字,单词可以用-隔开
      • 版本尽可能使用SemVer2表示版本号,版本号中不允许有+符号
      • 格式化yaml 两个空格缩减
      • Chart.yaml中c必须大写,
    • values 值 values.yaml
      • 变量名称必须小写字母开头,字词应该已驼峰分隔
      • 建议使用平面方式定义变量,如果有大量一类变量时,嵌套定义变量,提供可读性
      • 类型转换, foo: !!string 123 (强制为字符串类型),如果双引号,也是字符串类型,引用时, {{ int $value }}转换为int型
      • values.yaml的值可以通过 helm install -f 或者 --set 覆盖
      • values.yaml中的每个变量前面,添加描述信息
    • templates 模板
      • .yaml文件产生YAML输出,.tlp用于其他模板文件,模板名称用-分隔单词,不使用驼峰格式,模板名称应在名称中放映资源种类
      • 定义模板名称 {{- define "nginx.fullname" }}{{/* ... */}}{{ end -}}
      • 格式化模板,两个空格缩进,左右括号前有空格,注意缩进{{- print "foo" -}}
      • 模板中空行尽量保证最小,可加逻辑部分之间的空行,增加可读性
      • yaml模板注释,#开头, 多行注释 {{- /* test */ -}}
      • yaml模板中可以使用json数据
    • dependencies 依赖关系
    • labels and annotations 标签和注释
      • 标准标签 kubernetes特许标签列表
    • pods and podTemplates
      • image,imagepullpolicy,podtemplates
    • custom resource definitions
    • Role-based access control
  • chart template guide: chart模板指南,介绍模板相关内容,使用值,使用模板技巧
    • getting started: 入门
    • build-in objects 内建对象
    • values files 值文件
    • template function and piplines 模板函数和管道
    • template function list 模板函数列表
    • flow contral 流控制
    • variables 变量
    • named templates 命名模板:
      • define定义命名模板,template,include引用;
      • include支持管道,能动态引用模板(变量);template 只能接收字符串;
      • 在模板有多行需要缩进时,只能用include
    • accessing files inside templates 访问模板中的文件 chart必须小于1M,{{ .Files.Get . }},{{ .Files.Glob "bar/*" }},{{ .Files.Get "config.toml" |b64enc }}
    • creating A NOTES.txt file 建NOTES.txt文件,在helm install/upgrade时,为用户打印有用信息,推荐构建此文件,
    • subsharts and global values
      • 子chart是独立的,不能访问父级的值;父chart能覆盖子chart的值;
      • chart有全局变量概念;在父chart/values.yaml中定义子chart名称字段,字段里面的值会被传递或覆盖子chart
      • .values.global.testvalue 定义全局变量
    • the .Helmignore file 指定不想在helm中包含的文件,如果.Helmignore中指定文件存在,在helm package 打包命令时会忽略匹配的所有文件
    • debugging templates 测试模板
      • helm lint 验证chart是否遵循最佳做法
      • helm install --dry-run --debughelm temple --dubug 让服务器呈现模板,返回生成的清单文件
      • helm get manifest [已安装的chart name] 查看服务器上安装了哪些模板
    • text 给出指南为涉及到的内容资料地址
    • appendix: yaml techniques 介绍yaml的一些编写规则,
      • age: !!str 21 默认双引号表示str,也可!!声明值类型
    • appendix: go data types and template
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354