如何在Helm Chart中内置无需解析的环境配置文件并支持-f参数引用?
Helm 内置分环境配置文件解决方案
Helm 完全支持你的需求,无需额外脚本、重命名等繁琐操作,具体操作如下:
1. 调整Chart目录结构
将dev.yaml、prod.yaml移动到myappChart目录下即可(可直接放在根目录,也可单独创建envs等自定义目录存放,更便于管理),调整后示例结构:
myappChart/ Chart.yaml # 原有Chart声明文件 values.yaml # 原有默认配置文件 dev.yaml # 开发环境配置 prod.yaml # 生产环境配置 templates/ # 原有模板目录 # 其他原有Chart文件
如果选择自定义目录存放,结构示例:
myappChart/ envs/ dev.yaml prod.yaml Chart.yaml values.yaml templates/
2. 实现逻辑说明
- Helm 仅会解析
templates/目录下的文件为Kubernetes Manifest资源,根目录或自定义非templates目录下的YAML文件不会被当成Manifest处理,完全符合你对values类配置文件的定位 - 只要你没有在
.helmignore中添加这两个文件的匹配规则,执行helm package打包Chart时,它们会被自动包含在Chart包内,推送、拉取Chart时都会同步携带
3. 使用方式
拉取Chart到本地后,直接通过相对路径引用对应环境的配置文件即可,和你之前的使用逻辑完全一致,示例命令:
# 根目录存放配置的场景 helm upgrade --install myapp ./myappChart -f ./myappChart/dev.yaml # 自定义envs目录存放配置的场景 helm upgrade --install myapp ./myappChart -f ./myappChart/envs/dev.yaml
内容的提问来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

