# 全局values.yaml重构说明 ## 问题分析 ### 旧设计的问题 ❌ - **严重冗余**: 全局values.yaml包含所有34个服务的完整配置(1073行) - **维护困难**: 修改镜像版本需要在全局和各服务文件中修改两次 - **配置不同步**: 全局用 `your-registry`,但实际使用 `harbor.stardance` - **浪费空间**: 重复了charts//values.yaml中的所有配置 ### 示例对比 **旧做法(冗余):** ```yaml # 全局values.yaml (1073行) shop-recycle-payment: image: repository: your-registry/shop-recycle-payment tag: "1.0.0" config: yml: {...} # 500+ 行配置 # + 各服务配置 (charts/shop-recycle-payment/values.yaml) shop-recycle-payment: image: repository: harbor.stardance/shoprecycle/shop-payment tag: v2.0.0 config: yml: {...} # 相同的500+行配置 ``` --- ## 新设计 ✅ ### 精简后的全局values.yaml **作用**: 仅定义真正的全局配置 ```yaml # 1. 全局镜像配置 global: image: registry: harbor.stardance pullPolicy: IfNotPresent # 2. 全局标签(所有Pod都会附加) global: labels: platform: microservice-platform project: shop-recycle # 3. 服务启用/禁用开关 shop-recycle-payment: enabled: true shop-recycle-store: enabled: true # ... 其他服务 ``` **优点:** - ✅ 代码简洁(102行 vs 1073行) - ✅ 易于维护(单一职责) - ✅ 配置一致(无重复) - ✅ 易于快速启用/禁用服务 --- ## 文件结构对比 ### 旧结构 ``` values.yaml (1073行, 冗余配置) ├── global config ├── shop-recycle-payment (完整配置) ├── shop-recycle-store (完整配置) └── ... 32个服务 (每个包含完整配置) charts/shop-recycle-payment/values.yaml (独立配置) charts/shop-recycle-store/values.yaml (独立配置) ``` **问题**: 配置在两个地方,容易不同步! ### 新结构 (推荐) ``` values.yaml (102行, 仅全局和启用开关) ├── global: │ ├── image │ └── labels └── : enabled: true charts/shop-recycle-payment/values.yaml (完整配置) ├── app ├── image ├── service ├── resources └── config charts/shop-recycle-store/values.yaml (完整配置) ``` **优点**: 单一配置源,配置一致! --- ## 使用方式 ### 查看当前配置 ```bash # 查看所有值(包括从charts//values.yaml继承的) helm template shop-recycle ./ # 只查看全局值 helm values ./ ``` ### 启用/禁用服务 ```bash # 禁用某个服务 helm upgrade shop-recycle ./ \ --set shop-recycle-payment.enabled=false # 启用特定服务 helm upgrade shop-recycle ./ \ --set shop-recycle-gateway.enabled=true ``` ### 修改全局配置 ```bash # 修改全局镜像拉取策略 helm upgrade shop-recycle ./ \ --set global.image.pullPolicy=Always # 修改全局标签 helm upgrade shop-recycle ./ \ --set global.labels.environment=production ``` ### 修改特定服务配置 由于配置在各服务的values.yaml中,修改方式: ```bash # 方式1: 命令行覆盖 helm upgrade shop-recycle ./ \ --set shop-recycle-payment.image.tag=v2.1.0 \ --set shop-recycle-payment.app.replicaCount=3 # 方式2: 使用环境特定的values文件 helm upgrade shop-recycle ./ \ -f environments/prod-values.yaml # 方式3: 修改charts/shop-recycle-payment/values.yaml # 然后git push提交更新 ``` --- ## 迁移检查清单 - ✅ 全局values.yaml精简到102行(仅全局配置 + 启用开关) - ✅ 全局镜像registry更新为harbor.stardance - ✅ 所有34个服务的values.yaml独立配置完整 - ✅ 旧的values.yaml备份为values.yaml.backup - ✅ 验证Helm chart仍然能正确部署 --- ## FAQ ### Q: 如何部署特定版本的服务? A: 修改 `charts//values.yaml` 的 `image.tag` 或使用命令行覆盖: ```bash helm upgrade shop-recycle ./ \ --set shop-recycle-payment.image.tag=v2.1.0 ``` ### Q: 全局values.yaml还有用吗? A: 有的。用途: 1. 定义全局镜像拉取策略 2. 定义全局标签(Pod自动带上) 3. 快速启用/禁用服务 4. 环境级别的全局配置 ### Q: 如何批量修改所有服务的配置? A: 使用environment values文件: ```yaml # environments/prod-values.yaml shop-recycle-payment: app: replicaCount: 3 shop-recycle-store: app: replicaCount: 3 shop-recycle-gateway: app: replicaCount: 5 # ...其他服务 ``` 然后: ```bash helm upgrade shop-recycle ./ -f environments/prod-values.yaml ``` --- ## 性能和维护收益 | 方面 | 旧设计 | 新设计 | 收益 | |------|-------|-------|------| | 代码行数 | 1073 | 102 | 减少90% | | 维护点 | 68 (34服务×2文件) | 35 (34服务×1文件) | 减少50% | | 配置一致性 | 易出错 | 自动一致 | ✅ 高 | | 快速查看 | 困难 | 简单 | ✅ 高 | --- **最后更新**: 2026-01-21