zoukankan      html  css  js  c++  java
  • helm笔记

    一。注意事项

    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    #查看指定模板的渲染结果

       
  • 相关阅读:
    浅析Linux操作系统是如何工作的(思维导图)
    【Git】创建一个空分支
    ubuntu13.04更新源
    【Linux操作系统分析】设备驱动处理流程
    django-xss攻击原理与防范
    django—xadmin中集成富文本编辑器ueditor
    垃圾回收机制
    元组-不仅仅是不可变的列表
    不一样的列表
    Python数据模型
  • 原文地址:https://www.cnblogs.com/dufeixiang/p/10825060.html
Copyright © 2011-2022 走看看