目前的问题是,helm 的 value 会有多个,因为有很多个环境,如果 value 中新增一项,那么要在所有 value.yaml 中添加那一项,新增子 chart 的方案感觉很乱所有没有用,还有什么其他可以管理的方案不
1 arischow 2024-02-18 17:50:56 +08:00 |
![]() | 2 fengxsong 2024-02-18 17:59:06 +08:00 你是一个 chart 使用在多个应用上? |
3 a842543374 2024-02-18 18:01:02 +08:00 试试 helmfile |
4 kikyou12138 OP @fengxsong 不是,是一个 chart 应用在多套环境,其中也有离线环境,所以添加一个配置项的时候,需要手动维护多个 value.yaml |
5 kikyou12138 OP @a842543374 好的我学习下 |
6 kikyou12138 OP @arischow 3q |
![]() | 7 airycanon 202402-18 18:12:32 +08:00 听起来 kustomize overlay 挺适合你的。 |
8 sampeng 2024-02-18 18:29:04 +08:00 因为一次 helm template 过程是可以传递多个 value.yaml. 其次 value.yaml 是覆盖关系。所以可以抽取一个公共的 common.yaml.公共的放这里面。 最后,就可以做到改一个 yaml 所有环境自动调整好。 当然也有坏处,多一个文件就要多一个说明。时间长了记不住 |
9 sampeng 2024-02-18 18:29:51 +08:00 比如我的 helm 就是 helm install -f common.yaml -f prod.yaml helm install -f common.yaml -f test.yaml helm install -f common.yaml -f staging.yaml |
10 kikyou12138 OP @sampeng 这个我尝试过,但是还是要维护多个 value 的 yaml ,如果要新增一个多个环境有差别的配置的话 |
![]() | 11 mightybruce 2024-02-19 00:00:42 +08:00 这时候 yaml 是不够的, 你需要尝试一下 HCL CUE KCL 这样的通用语言去生成 Yaml 了 https://kcl-lang.io/docs/user_docs/getting-started/intro/ |
![]() | 12 fengxsong 2024-02-19 09:13:53 +08:00 |
13 sampeng 2024-02-19 10:11:01 +08:00 @kikyou12138 多个环境就是要维护多个 yaml 。否则,就要用类似 hcl ,cue 之类的语言从配置中心自动来生成 yaml 。取决你的需求。helm 的 value 变更一般很小。一个月一次?甚至只要这个环境定了就不动了。。。 |
14 kikyou12138 OP @sampeng 好的我去了解下,我们多个环境变动很频繁,所以才有这个需求 |
![]() | 15 clhlc 2024-02-19 18:01:16 +08:00 看起来 7 楼方案适合你,不过我用 3 楼方案 |
16 windcode 2024-06-13 14:41:48 +08:00 可以考虑 KCL+Kusion |