一。注意事项

1.values.yaml   中可以使用'#'号注释行,而/templates 下的文件不能用#号,如果要注释可以使用 {{/*  context  */}}

2。{{-    #忽略前面空格 ,-}} #忽略后面空格

3.在yaml中如果要输入大块有格式的数据可以用   ‘|-’,这样就会保留原有格式,否则我们加载到程序中时不会保留原有格式

4.在YAML中可以使用 '!!str' 将内容强制为字符类型,'!!int'将内容强制转换为整数类型

5.include与 template的区别:

  template后面无法使用管道,template只是一个动作而不是一个函数,数据属性是内联的,无缩进

  include是一个函数,后面可以使用管道,可以利用indent函数缩进

二。模板内读取文件中内容:

1.需要传入要读取的文件名

{{ $file := .Files }}
{{ range tuple "file" "file2" }}
{{ . }} ----- {{ $file.Get .}}
{{ end }}

########################

2.筛选指定类型只匹配以yaml结尾的文件:

{{ $root := . }}
{{ range $path, $bytes := .Files.Glob "**.yaml" }}
{{ $path }}: |-
{{ $root.Files.Get $path }}
{{ end }}

3.将文件内容导入configmap:

{{ .Files.Get "file" }}

4.将指定类型文件读入后显示文件名和文件内容:

{{- (.Files.Glob "foo/*").AsConfig | nindent 2 }}

渲染结果:

# Source: helm-repo/templates/configmap.yaml
file: |
hello
file2: |
word

5.将文件内容导入做Secret

  {{- (.Files.Glob "bar/*").AsSecrets | nindent 2 }}

渲染结果:

# Source: helm-repo/templates/configmap.yaml
file: aGVsbG8K
file2: d29yZAo=

6.逐行显示文件:

{{ range .Files.Lines "foo/bar.txt" }}
{{ . }}
{{ end }}

 

三。内置方法:

1.title       #首字母大写

2.upper   #转为大写

3.quote   #用引号括起来

4.default val   #定义一个默认值

5.requied       #定义一个约束,values文件中必须定义此值,否则就报错

6.b64enc      #使用base64加密

7.b64dec      #使用base64解密

8.indent INT  #缩进指定字符

9.nindent INT #在新行缩进

四。模板变量:

{{- $NAME := .Release.Name -}}           #定义变量并赋值
{{ $NAME }} #变量引用
上面定义的变量的作用是全局的,而下面的示例变量的范围则是局部的,只作用于定义的块中:
#字典循环:
  {{- range $key, $val := .Values.favorite }}
{{ $key }}: {{ $val | quote }}
{{- end}}
#列表循环:

{{ range $index, $val := .Values.name }}
{{ $index }} : {{ $val }}
{{ end }}

Note:在helm中循环使用range来实现的,没有FOR。

五.chart与子chart:

  1. 子chart是独立的,这意味着子chart永远不会明确依赖其父chart。
  2. 子chart无法访问其父级的值,除非在父chart中定义global
  3. 父chart可以覆盖子chart的值。

六。调试:

1.helm lint Chart_Path                                                     #查看是否有语法错误

2.helm install --dry-run --debug                                       #查看渲染结果而不真的发布到k8s

3.helm get manifest Release_name                                #查看release的K8Syml定义文件

4.helm template Chart -x templates/deployment.yaml    #查看指定模板的渲染结果

   

helm笔记的更多相关文章

  1. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  2. Helm学习笔记

    Helm学习笔记 Helm 是 Kubernetes 生态系统中的一个软件包管理工具.本文将介绍 Helm 中的相关概念和基本工作原理,并通过一个具体的示例学习如何使用 Helm 打包.分发.安装.升 ...

  3. kubernetes学习笔记之十四:helm入门

    1.Helm的简介 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Helm有如下几个基本概念: Chart ...

  4. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&倒装句(Reduced Clauses、Inverted Sentences) 【完结】

    [英语魔法俱乐部——读书笔记] 3 高级句型-简化从句&倒装句(Reduced Clauses.Inverted Sentences):(3.1)从属从句简化的通则.(3.2)形容词从句简化. ...

  5. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Helm 1.1 为何需要Helm? 虽然K8S能够很好地组织和编排容 ...

  6. k8s kubernetes 核心笔记 镜像仓库 项目k8s改造(含最新k8s v1.16.2版本)

    k8s kubernetes 核心笔记 镜像仓库 项目k8s改造 2019/10/24 Chenxin 一 基本资料 一 参考: https://kubernetes.io/ 官网 https://k ...

  7. Kubernetes笔记(四):详解Namespace与资源限制ResourceQuota,LimitRange

    前面我们对K8s的基本组件与概念有了个大致的印象,并且基于K8s实现了一个初步的CI/CD流程,但对里面涉及的各个对象(如Namespace, Pod, Deployment, Service, In ...

  8. Kubernetes学习笔记_尚硅谷

    https://www.bilibili.com/video/BV1w4411y7Go?p=1 一.K8s介绍 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部 ...

  9. 通过helm部署EFK收集应用日志,ingress-nginx日志解析。

    前段时间看了马哥的k8s新书,最后几章讲了下EFK,尝试部署了下,很多问题, 这里改进下,写个笔记记录下吧. 准备工作 所有组件都通过helm3部署,选添加几个仓库. helm repo add bi ...

随机推荐

  1. Laya页面嵌套和Scene.destory导致的Bug

    Laya2.1.1.1 参考: 预设使用 Laya给出了相同模块,逻辑代码也相同情况下,使用页面嵌+runtime的使用方案.但是该方案和Laya.Scene.open,Laya.Scene.dest ...

  2. [LeetCode] 170. Two Sum III - Data structure design 两数之和之三 - 数据结构设计

    Design and implement a TwoSum class. It should support the following operations:add and find. add - ...

  3. [LeetCode] 206. Reverse Linked List 反向链表

    Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively. ...

  4. Centos下Redis集群的搭建实现读写分离

    Centos下Redis一主多从架构搭建 搭建目标:因为自己笔记本电脑配置较低的原因,模拟两台机器之间搭建一主一从的架构,主节点Redis主要用来写数据,数据写入到主节点的Redis,然后从节点就可以 ...

  5. c++模板使用及常见问题

    一.为什么使用模板?? 使用模板的目的是为了避免重复声明和定义一系列基本功能相同的函数或者类,其区别因传入参数的不同而产生不同类型的数据,其基本工作过程都是一致的! 二.调用模板函数产生不明确问题 ( ...

  6. 使用flask做网页的excel成绩分析

    使用到的技术:pyecharts flask 首先 pip install flask 和下载pip install pyecharts==0.5.5 项目结构: 代码: from flask imp ...

  7. python实战项目 — 爬取 妹子图网,保存图片到本地

    重点: 1. 用def函数 2. 使用 os.path.dirname("路径保存") , 实现每组图片保存在独立的文件夹中 方法1: import requests from l ...

  8. TweenLite参数用法中文介绍

    TweenLite是一个缓动的类包,功能强大,并且易于使用,为了更多的(E文欠佳的.初学的)朋友了解它,使用它,特此翻译了一下TweenLite类文档中的说明文件,主要是对参数的说明,希望对大家有用. ...

  9. mysql_select 单表查询

    select *         *代表全部   查询多个字段 select  字段1,字段2,字段3   聚合函数  count(*)       统计 select count(*)       ...

  10. UOJ343 清华集训2017 避难所 构造、打表

    传送门 玄学题 考虑构造三个数\(p_1p_2,p_1p_2,p_1p_2\)满足贪心分解会分解为\(p_1^3,p_2,p_2,p_2\),那么需要满足条件 1.\(p_1 , p_2 \in Pr ...