पाठ 4 / 25
Values Files and Overrides
Override chart defaults with values files and --set, and predict which value wins.
Layers of configuration
Every chart ships a values.yaml with defaults. You override them when installing or upgrading, and Helm merges the layers in a fixed order, later layers winning: the chart's own values.yaml, then a parent chart's values for its subcharts, then each file passed with -f / --values in the order given, then --set, --set-string and --set-file flags. Maps are merged key by key, but lists are replaced entirely, not merged. --set uses a compact path syntax (image.tag=2.7.1, ingress.hosts[0].host=shop.example.com) that becomes awkward for anything complex, so keep real configuration in version-controlled values files and use --set mainly for values computed in a pipeline, such as an image tag. helm get values RELEASE shows the values you supplied; add --all to see the fully computed result.
Values precedence
Defaults sit at the bottom; each layer above overrides the ones below it.
Layered values for production
values-prod.yaml overrides values.yaml, and the pipeline sets only the image tag.
# values.yaml (chart defaults)
replicaCount: 1
image:
repository: registry.example.com/shop-api
tag: "" # defaults to the chart's appVersion in templates
resources:
requests: { cpu: 100m, memory: 128Mi }
# values-prod.yaml (environment overrides)
replicaCount: 3
resources:
requests: { cpu: 500m, memory: 512Mi }
limits: { memory: 1Gi }
# command used by the pipeline
# helm upgrade --install shop-api ./charts/shop-api -n shop \
# -f values-prod.yaml --set image.tag=2.7.1Lists do not merge
If the defaults contain tolerations: [a, b] and your file sets tolerations: [c], the result is just [c]. Copy every list entry you want to keep into the override.
त्वरित जाँच: A value is set in values.yaml, in values-prod.yaml passed with -f, and with --set. Which wins?
- values.yaml
- values-prod.yaml
- The --set value
- Whichever is alphabetically first
Answer
The --set value — --set overrides values files, which override the chart defaults.