# 在values.yaml文件中定义的值通过 Values 对象传递到templates下的YAML模板清单中# 下例在YAML模板清单中通常最左侧的点 . 表示全局作用域 (引用全局对象) 而中间的点类似js对Json对象的属性引用
{{ .Values.key }}# Values对象代表着values.yaml中定义的参数,通过.Values对象可引用该文件内任意的参数
{{ .Values.image.repository }}# helm在全局作用域中有两个重要的全局对象:
#   1.Values
#   2.Release# 内置对象 Values 提供对传入chart的值的访问,其内容来自4个来源
#   1.chart中的values.yaml文件
#   2.若这是个子chart,来自父chart的values.yaml文件
#   3.在执行 install 或 upgrade 时通过 -f或--values 指定传入的values.yaml,如: helm install ./mychart -f myvals.yaml
#   4.在执行 install 或 upgrade 时通过 --set 选项传入,如 helm install ./mychart --set foo=bar# --------------------------------------------------  {{ .Release.X }}# Release代表应用发布时带有的属性(介绍信息),注意这里和Values中的模板区分开
# 模板替换还是用Values,下面是Release对象包含的属性字段 ...
{{ .Release.Name }}         # release的名字 (在Chart.yaml中定义或通过helm命令在部署时指定)
{{ .Release.Time }}         # release部署时间
{{ .Release.Namespace }}    # kubernetes命名空间
{{ .Release.Revision }}     # release版本号,是递增值,每次更新都加一
{{ .Release.IsUpgrade }}    # 若值为true则代表该release是一次更新
{{ .Release.IsInstall }}    # 若值为true则代表该release是一次安装# -------------------------------------------------- 父子引用1# 使用export格式
# 若子chart在其values.yaml的root下有个叫做exports的key
# 则父chart就可以直接在requirements里通过指定需要import的key来将值import到自身的values.yaml里面# parent's requirements.yaml file...import-values:- data# child's values.yaml file
...
exports:data:myint: 99# helm会发现用户指定了要 import data 这个key,所以就去child的values.yaml里面寻找
# 发现了这个key有被export,于是就import了它的内容# 此时parent的values如下 (parent's values file)
...
myint: 99# 需注意在parent的values中data这个key不会被import进来,只会import data的内容
# 如果希望把这个key也一起import进来可使用下面说的方法 ...# -------------------------------------------------- 父子引用2# 使用child/parent格式# 若想要获得不在名为"exports"这个key下面的值,就必须指定在child中要import的路径,以及在parent中的对应路径# parent's requirements.yaml file
dependencies:- name: subchart1repository: http://localhost:10191version: 0.1.0...import-values:- child: default.dataparent: myimports
# 根据如上的这个requirements文件,helm将在child的chart中寻找default.data的值并导入到parent中的 myimports 这个路径下# 假设parent和child初始的values如下# parent's values.yaml file
myimports:myint: 0mybool: falsemystring: "helm rocks!"# subchart1's values.yaml file
default:data:myint: 999mybool: true# 那么导入之后,真正渲染出来的parent的values的值为:
# parent's final values
myimports:myint: 999mybool: truemystring: "helm rocks!"# 可看出parent中的values把myint和mybool从subchart1里面import了进来# -------------------------------------------------- 父chart中修改子chart的values.yaml# 假设子chart名字是hello, 要修改hello的values.yaml文件的root下的image的值
# 那么可以在父chart中通过一下方式进行修改# in parent's values.yaml
...
hello:image: 'xxxx/test:hello'
# 这样hello的values.yaml文件的image值就会被覆盖修改# -------------------------------------------------- 利用global关键字# 若父chart下所有子chart都有共同的变量A,要通过以上方式修改其值显示比较麻烦,这时可用关键字global# subchart1's values.yaml file
global:affinityValue: "test"# in parent's values.yaml
global:affinityValue: "debug"# 这样所有子chart的 global.affinityValue 都将被覆盖修改


# -------------------------------------------------- {{ .Files.X }}# Files 提供对 chart 中所有非特殊文件的访问。虽然无法使用它来访问模板,但能用其访问 chart 中的其他文件Files.Get # 是按名称获取文件的函数(.Files.Get config.ini)
Files.GetBytes  # 是将文件内容作为字节数组而不是字符串获取的函数,对于像图片这样的东西很有用
Files.Glob  # is a function that returns a list of files whose names match the given shell glob pattern.
Files.Lines # is a function that reads a file line-by-line. This is useful for iterating over each line in a file.
Files.AsSecrets # is a function that returns the file bodies as Base 64 encoded strings.
Files.AsConfig  # is a function that returns file bodies as a YAML map.# 在 templates/configmap.yaml 中描述的是nginx的配置文件
# 这些配置可直接写入模本文件,也可通过Files对象把普通文件内容引入进来 ...
apiVersion: v1
kind: ConfigMapmetadata:name: {{ .Release.Name }}-configmapdata:nginx.conf: {{.Files.Get "files/nginx.conf" | printf "%s" | indent 4}}# 可配置成通用模板文件,引入的nginx配置文件通过 .Release.Name 传入,这样实现了解耦# -------------------------------------------------- Capabilities# 这提供了关于 Kubernetes 集群支持的功能的信息# -------------------------------------------------- 其他# Template 包含有关正在执行的当前模板的信息
Template.Name         # 当前使用的模板文件,如 mychart/templates/configmap.yaml
Template.BasePath     # 当前 chart 模板目录的 namespace 路径,如 mychart/templates

helm 的 values.yaml 配置语法说明相关推荐

  1. SpringBoot:yaml配置及语法、yml数据读取、多环境开发控制

    yaml 配置 YAML(YAML Ain't Markup Language),一种数据序列化格式 优点: 容易阅读 容易与脚本语言交互 以数据为核心,重数据轻格式 YAML文件扩展名 .yml(主 ...

  2. Helm Values.yaml

    1. values.yaml 上面的内置对象中有一个对象就是 Values,该对象提供对传入 chart 的值的访问,Values 对象的值有4个来源: chart 包中的 values.yaml 文 ...

  3. helm安装mysql_helm安装配置

    简介 helm是kubernetes的包管理工具,用于简化部署和管理 Kubernetes 应用.用来管理charts--预先配置好的安装包资源. Helm和charts的主要作用: 应用程序封装 版 ...

  4. SpringBoot配置文件YAML配置注入(详解)

    目录 一.SpringBoot配置文件 1. SpringBoot默认配置文件 2. 配置文件的作用 3. 配置文件的位置 4. 多环境切换 方式一:多配置文件 方式二:一个配置文件(yaml的多文档 ...

  5. SpringBoot中yaml配置

    yaml是一种可读性高,用来表示数据序列化的格式.在SpringBoot中也可以使用properties,但是推荐使用yaml. 在SpringBoot中使用一种全局的配置文件,其名称是固定的为app ...

  6. yaml/yml语法

    spring官方推荐使用application.yaml代替application.properties,因为yaml更加强大 properties语法:key=value ,例如 server.po ...

  7. Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )

    Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...

  8. Highcharts 配置语法;Highcharts 配置选项详细说明

    Highcharts 配置语法 本章节我们将为大家介绍使用 Highcharts 生成图表的一些配置. 第一步:创建 HTML 页面 创建一个 HTML 页面,引入 jQuery 和 Highchar ...

  9. Spring Boot YAML配置

    在本快速教程中,我们将学习如何使用YAML文件来配置Spring Boot应用程序的属性. 什么是YAML文件? 除了可以在Spring中没有应用程序.properties之外 ,我们还可以使用app ...

最新文章

  1. 勒索病毒爆发,WFilter教你如何应对?
  2. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
  3. 设计模式--适配器(Adapter)模式
  4. 经典C语言程序100例之二六
  5. xshell执行结果到文本_xshell拷贝文件到本地
  6. Oracle分析函数详述
  7. mysql添加表字段_mysql命令添加表字段
  8. mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证
  9. 网站集搜索中心的搜索页面对应路径:
  10. Spring4.x(3)---工厂模式设计IOC容器
  11. 操作系统中的用户空间和内核空间
  12. date对象加十分钟_js面向对象-这样学很轻松
  13. jQuery - slice( start, [end] ) Method
  14. 类、匿名类、静态、构造、单例
  15. 事业单位考试题库计算机网络,计算机考试题库:计算机网络模拟练习题(2)...
  16. 你真的了解活跃用户吗?
  17. oracle asm密码是什么,ASM有自己的参数、密码、alert、监听文件
  18. K8S中使用显卡GPU(N卡) —— 筑梦之路
  19. Python基础教程:一次性搞定 Django Form
  20. akka学习教程(十四) akka分布式实战

热门文章

  1. 从头到尾把事做成,要有多难?
  2. 使用Git命令创建新分支
  3. 三、ByteBuf组件
  4. urllib.request.urlopen详解
  5. 护士如何成功转型到服装设计师
  6. foreach循环的介绍
  7. 解决scrapy爬虫框架多个spider指定pipeline
  8. 微信小程序分享朋友圈官方支持哪些方面(最新版本)
  9. python做线性回归_利用python实现简单的线性回归
  10. Halcon读取jpg格式图片失败的处理方法