建设学院网站山东天元集团有限公司
web/
2025/10/2 4:54:44/
文章来源:
建设学院网站,山东天元集团有限公司,seo网站优化服务合同,制作h5的免费软件values 最佳实践的该部分包括了values的使用。这部分指南中#xff0c;我们提供了关于您如何构建和使用values的建议#xff0c;以及专注于设计chart的values.yaml文件。 命名规范
变量名称以小写字母开头#xff0c;单词按驼峰区分#xff1a;
正确的#xff1a;
chic…values 最佳实践的该部分包括了values的使用。这部分指南中我们提供了关于您如何构建和使用values的建议以及专注于设计chart的values.yaml文件。 命名规范
变量名称以小写字母开头单词按驼峰区分
正确的
chicken: true
chickenNoodleSoup: true
错误的
Chicken: true # initial caps may conflict with built-ins
chicken-noodle-soup: true # do not use hyphens in the name
注意所有的Helm内置变量以大写字母开头以便与用户定义的value进行区分.Release.Name.Capabilities.KuberVersion。 扁平或嵌套的Value
YAML是一种灵活格式值可以嵌套得很深也可以是扁平的。
嵌套的
servere: name: nginx port: 80
扁平的
serverName: nginx
serverPort: 80
大多数场景中扁平的优于嵌套的。因为对模板开发者和用户来说更加简单。
为了最佳的安全性嵌套值的每一层都必须检查
{{ if .Values.server }} {{ default none .Values.server.name }}
{{ end }}
对于每个嵌套层都必须进行存在性检查。但对于扁平的配置使得模板更易于阅读和使用这个检查可以跳过。
{{ default none .Values.serverName }}
当有大量的相关变量时其中至少有一个是非选择性的嵌套的值可以改善可读性。 搞清楚类型
YAML的类型强制规则有时候是很反常的。比如foo: false和foo: false是不一样的。大整型数如foo: 12345678有时会被转换成科学计数法。
避免类型强制规则错误最简单的方式是字符串明确定义其他都是不明确的。或者简单来讲给所有字符串打引号。
通常为了避免整数转换问题将整型存储为字符串更好并用{{ int $value }}在模板中将字符串转回整型。
在大多数场景中显示的类型标记更好所以foo: !!string 1234会将1234作为字符串对待。但是YAML解析器会消耗标记因此类型数据在一次解析后会丢失。 考虑用户如何使用您的value
有三种潜在的value来源
1、chart的values.yaml文件
2、由 helm install -f 或 helm upgrade -f 提供的values文件
3、在执行 helm install 或 helm upgrade 时传递给 --set 或 --set-string 参数的values
当设计values的结构时记得您的chart用户可能会通过 -f 参数或 --set 选项覆盖他们。
由于 --set 在表现上更有限编写您values.yaml文件的第一指导原则是确保它容器被 --set 覆盖。
因此使用map构建valuse文件更好。
很难与 --set 一起使用
servers: - name: foo port: 80 - name: bar port: 81
servers:- name: fooport: 80- name: barport: 81
上述在Helm 2.4的版本中无法和--set一起表达。在Helm 2.5中访问foo上的端口是 --set servers[0].port80。用户不仅更难理解而且以后更改serveres顺序之后更容易出错。
易于使用
servers: foo: port: 80 bar: port: 81
servers:foo:port: 80bar:port: 81
这样访问foo的port更加明显 --set servers.foo.port80。 给values.yaml写文档
values.yaml中给每个定义的属性都应该文档化。文档字符串应该以它要描述的属性开头并至少给出一句描述。
不正确的
# the host name for the webserver
serverHost: example
serverPort: 9191
# the host name for the webserver
serverHost: example
serverPort: 9191
正确的
# serverHost is the host name for the webserver
serverHost: example
# serverPort is th Http listener port for the webserver
serverPort: 9191
# serverHost is the host name for the webserver
serverHost: example
# serverPort is the HTTP listener port for the webserver
serverPort: 9191
以它描述的参数名称开始每个注释可以很容齐整理文档并使工具可靠地将文档字符串与其描述的参数关联起来。 ————————————
仅用于本人学习
来源Helm | Docs
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85434.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!