helm 的 values.yaml 配置语法说明
# 在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 配置语法说明相关推荐
- SpringBoot:yaml配置及语法、yml数据读取、多环境开发控制
yaml 配置 YAML(YAML Ain't Markup Language),一种数据序列化格式 优点: 容易阅读 容易与脚本语言交互 以数据为核心,重数据轻格式 YAML文件扩展名 .yml(主 ...
- Helm Values.yaml
1. values.yaml 上面的内置对象中有一个对象就是 Values,该对象提供对传入 chart 的值的访问,Values 对象的值有4个来源: chart 包中的 values.yaml 文 ...
- helm安装mysql_helm安装配置
简介 helm是kubernetes的包管理工具,用于简化部署和管理 Kubernetes 应用.用来管理charts--预先配置好的安装包资源. Helm和charts的主要作用: 应用程序封装 版 ...
- SpringBoot配置文件YAML配置注入(详解)
目录 一.SpringBoot配置文件 1. SpringBoot默认配置文件 2. 配置文件的作用 3. 配置文件的位置 4. 多环境切换 方式一:多配置文件 方式二:一个配置文件(yaml的多文档 ...
- SpringBoot中yaml配置
yaml是一种可读性高,用来表示数据序列化的格式.在SpringBoot中也可以使用properties,但是推荐使用yaml. 在SpringBoot中使用一种全局的配置文件,其名称是固定的为app ...
- yaml/yml语法
spring官方推荐使用application.yaml代替application.properties,因为yaml更加强大 properties语法:key=value ,例如 server.po ...
- Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )
Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...
- Highcharts 配置语法;Highcharts 配置选项详细说明
Highcharts 配置语法 本章节我们将为大家介绍使用 Highcharts 生成图表的一些配置. 第一步:创建 HTML 页面 创建一个 HTML 页面,引入 jQuery 和 Highchar ...
- Spring Boot YAML配置
在本快速教程中,我们将学习如何使用YAML文件来配置Spring Boot应用程序的属性. 什么是YAML文件? 除了可以在Spring中没有应用程序.properties之外 ,我们还可以使用app ...
最新文章
- 勒索病毒爆发,WFilter教你如何应对?
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
- 设计模式--适配器(Adapter)模式
- 经典C语言程序100例之二六
- xshell执行结果到文本_xshell拷贝文件到本地
- Oracle分析函数详述
- mysql添加表字段_mysql命令添加表字段
- mysql 8.0认证失败_Node.js无法对MySQL 8.0进行身份验证
- 网站集搜索中心的搜索页面对应路径:
- Spring4.x(3)---工厂模式设计IOC容器
- 操作系统中的用户空间和内核空间
- date对象加十分钟_js面向对象-这样学很轻松
- jQuery - slice( start, [end] ) Method
- 类、匿名类、静态、构造、单例
- 事业单位考试题库计算机网络,计算机考试题库:计算机网络模拟练习题(2)...
- 你真的了解活跃用户吗?
- oracle asm密码是什么,ASM有自己的参数、密码、alert、监听文件
- K8S中使用显卡GPU(N卡) —— 筑梦之路
- Python基础教程:一次性搞定 Django Form
- akka学习教程(十四) akka分布式实战