一彡十
骚话嘴边讲,比数心中留
展开
-
将自制的charts上传到harbor
将自制的charts上传到harbor(1)harbor中创建项目我这里创建了一个charts项目。(2)在运行helm的机器上,添加helm repohelm repo add pri-repo http://10.10.13.205:5001/chartrepo/chartspri-repo:repo名称http://10.10.13.205:5001/chartrepo/charts:仓库地址,chartrepo是指charts这个项目的chartrepo路径。chartrepo是ha原创 2022-01-24 19:06:29 · 851 阅读 · 0 评论 -
【Helm 让人容易困惑又实用的函数】
让人容易困惑又实用的函数https://jicki.cn/helm-chart/- 区别(非常非常易出错)(1){{ }} 左右两边都没有 - 的情况如果上下两边都有 元素, 会空一行. 效果如下:yamlsplit: {{ "=============" }}{{ if true }}name: {{ "hello world" }}{{ end }}split: {{ "=============" }}运行 templateroot@kubernetes:/opt/h原创 2022-01-20 11:08:58 · 302 阅读 · 0 评论 -
Helm 最佳实践
引自:Helm | 一般惯例values命名规范变量名称以小写字母开头,单词按驼峰区分:正确的:chicken: truechickenNoodleSoup: true错误的:Chicken: true # initial caps may conflict with built-inschicken-noodle-soup: true # do not use hyphens in the name注意所有的Helm内置变量以大写字母开头,以便与用户.原创 2021-09-14 14:58:05 · 364 阅读 · 0 评论 -
Helm Chart Test
chart包含了很多一起工作的Kubernetes资源和组件。作为一个chart作者,你可能想写一些测试验证chart安装时是否按照预期工作。 这些测试同时可以帮助chart用户理解你的chart在做什么。test在helm chart中放在templates/目录,并且是一个指定了容器和给定命令的任务。如果测试通过,容器应该成功退出 (exit 0) 任务的定义必须包含helm测试钩子的注释:helm.sh/hook: test。注意Helm v3中,任务定义需要包含helm的测试钩子注释之一..原创 2021-09-14 11:40:09 · 408 阅读 · 0 评论 -
Helm Chart Hook
Helm 提供了一个hook机制允许chart开发者在发布生命周期的某些点进行干预。比如你可以使用hook用于:安装时在加载其他chart之前加载配置映射或密钥 安装新chart之前执行备份数据库的任务,然后在升级之后执行第二个任务用于存储数据。 在删除发布之前执行一个任务以便在删除服务之前退出滚动。钩子的工作方式与常规模板类似,但因为Helm对其不同的使用方式,会有一些特殊的注释。这部分会讲述钩子的基本使用模式。可用的钩子定义了以下钩子:注释值 描述 pre-ins..原创 2021-09-14 10:52:48 · 303 阅读 · 0 评论 -
Helm Chart
引自:Helm | ChartHelm使用的包格式称为chart。 chart就是一个描述Kubernetes相关资源的文件集合。单个chart可以用来部署一些简单的, 类似于memcache pod,或者某些复杂的HTTP服务器以及web全栈应用、数据库、缓存等等。Chart是作为特定目录布局的文件被创建的。它们可以打包到要部署的版本存档中。如果你想下载和查看一个发布的chart,但不安装它,你可以用这个命令:helm pull chartrepo/chartname。该文档解..原创 2021-09-13 17:57:48 · 579 阅读 · 0 评论 -
Helm docs 生成 README.md
一个好的应用必定有一套好的文档,文档的质量往往和代码的质量成正比。而 Helm Chart 中的README.md文件就承担了文档的作用。Helm-docshelm-docs 可以根据 charts 内容自动生成 markdown 文件。该文件会包含有关 charts 的元数据,以及value.yaml中的参数,同时还可以引用子模板(默认为README.md.gotmpl),进一步定制生成的内容。安装helm-docs使用 golang 开发,支持多平台:wget http...原创 2021-09-12 14:20:30 · 335 阅读 · 0 评论 -
Helm 调试模板
调试模板可能很棘手,因为渲染后的模板发送给了Kubernetes API server,可能会以格式化以外的原因拒绝YAML文件。以下命令有助于调试:helm lint是验证chart是否遵循最佳实践的首选工具 helm install --dry-run --debug或helm template --debug:我们已经看过这个技巧了, 这是让服务器渲染模板的好方法,然后返回生成的清单文件。 helm get manifest: 这是查看安装在服务器上的模板的好方法。当你的YAML文...原创 2021-09-11 20:01:36 · 1286 阅读 · 0 评论 -
Helm 子chart和全局值
到目前为止,我们只使用了一个chart。但chart可以使用依赖,称为子chart,且有自己的值和模板。 该章节我们会创建一个子chart并能看到访问模板中的值的不同方式。在深入研究代码之前,需要了解一些子chart的重要细节:子chart被认为是“独立的”,意味着子chart从来不会显示依赖它的父chart。 因此,子chart无法访问父chart的值。 父chart可以覆盖子chart的值。 Helm有一个全局值的概念,所有的chart都可以访问。浏览本节的示例之后,这些概念会变得...原创 2021-09-11 19:50:38 · 652 阅读 · 0 评论 -
Helm 创建一个NOTES.txt文件
引自:Helm | 创建一个NOTES.txt文件该部分会介绍为chart用户提供说明的Helm工具。在helm install或helm upgrade命令的最后,Helm会打印出对用户有用的信息。 使用模板可以高度自定义这部分信息。要在chart添加安装说明,只需创建templates/NOTES.txt文件即可。该文件是纯文本,但会像模板一样处理, 所有正常的模板函数和对象都是可用的。让我们创建一个简单的NOTES.txt文件:Thank you for install...原创 2021-09-11 17:49:03 · 390 阅读 · 0 评论 -
Helm 命名模板
引自:Helm | 命名模板该部分我们会看到如何在一个文件中定义命名模板,并在其他地方使用。命名模板(有时称作一个部分或一个子模板)仅仅是在文件内部定义的模板,并使用了一个名字。有两种创建方式和几种不同的使用方法。在流控制部分, 我们介绍了三种声明和管理模板的方法:define,template,和block。define在模板中声明一个新的命名模板 template导入一个命名模板 block声明一种特殊的可填充的模板块在这部分,我们将使用者三种操作并介绍一种特...原创 2021-09-11 14:06:24 · 156 阅读 · 0 评论 -
Helm 变量
变量函数、管道符、对象和控制结构都可以控制,我们转向很多编程语言中更基本的思想之一:变量。 在模板中,很少被使用。但是我们可以使用变量简化代码,并更好地使用with和range。在之前的例子中,我们看到下面的代码会失败: {{- with .Values.favorite }} drink: {{ .drink | default "tea" | quote }} food: {{ .food | upper | quote }} release: {{ .Release.Nam原创 2021-09-10 18:26:49 · 783 阅读 · 1 评论 -
Helm Flow Control
引自Helm | 流控制流程控制控制结构(在模板语言中称为"actions")提供给你和模板作者控制模板迭代流的能力。 Helm的模板语言提供了以下控制结构:if/else, 用来创建条件语句 with, 用来指定范围 range, 提供"for each"类型的循环除了这些之外,还提供了一些声明和使用命名模板的关键字:define在模板中声明一个新的命名模板 template导入一个命名模板 block声明一种特殊的可填充的模板块该部分,我们会讨论关于if,wit...原创 2021-09-09 20:25:10 · 101 阅读 · 0 评论 -
Helm Template Function List
引自Helm | 模板函数列表eq返回参数的布尔等式(比如, Arg1 == Arg2)。eq .Arg1 .Arg2ne返回参数的布尔非等式(比如 Arg1 != Arg2)。ne .Arg1 .Arg2lt如果第一参数小于第二参数,返回布尔真。否则返回假(比如, Arg1 < Arg2)。lt .Arg1 .Arg2le如果第一参数小于等于第二参数,返回布尔真,否则返回假(比如, Arg1 <= Arg2)。le ..原创 2021-09-09 19:56:03 · 288 阅读 · 0 评论 -
Helm Template and Pipelines
到目前为止,我们已经知道了如何将信息放入模板(Template)中。 但是这些信息未被修改就放入了模板中。 有时我们希望以一种更有用的方式来转换所提供的数据。让我们从一个最佳实践开始:将.Values对象中的字符串注入模板时,应该引用这些字符串。可以通过 调用模板指令中的quote函数来实现:apiVersion: v1kind: ConfigMapmetadata: name: {{ .Release.Name }}-configmapdata: myvalue: "Hello W原创 2021-09-09 10:47:04 · 101 阅读 · 0 评论 -
Helm Values
引自:https://helm.sh/zh/docs/chart_template_guide/values_files/在上一部分我们了解了Helm模板提供的内置对象。其中一个是Values。该对象提供了对传递到chart的值的访问方法, 其内容源包括了多个位置,优先级从低到高:chart中的values.yaml文件 如果是子chart,就是父chart中的values.yaml文件 使用-f参数(helm install -f myvals.yaml ./mychart)传递.原创 2021-09-08 20:50:17 · 796 阅读 · 0 评论 -
Helm Built-in Objects
Built-in Objects means 内置对象。引自:https://helm.sh/docs/chart_template_guide/builtin_objects/内置对象上一篇Hello World中我们使用{{.Release.Name}}将 release 的名称塞到到模板中。这里的 Release 就是 Helm 的内置对象,下面是一些常用的内置对象,在需要的时候可以直接使用:Release: 该对象描述了版本发布本身。包含了以下对象: Release...原创 2021-09-08 20:39:43 · 92 阅读 · 0 评论 -
Helm “Hello World”
参考:https://www.cnblogs.com/xzkzzz/p/10445807.htmlcharts解读首先,用命名创建一个charts。helm create demo然后 tree demo/├── charts├── Chart.yaml├── templates│├── deployment.yaml│├── _helpers.tpl│├── ingress.yaml│├── NOTES.txt│├── servi...原创 2021-09-08 20:05:35 · 193 阅读 · 0 评论