I have a vendor Chart I am working with that boils down to this:
vendor:
tier:
- name: tier1
valueToSet: TBD
- name: tier2
valueToSet: TBD
- name: tier3
valueToSet: TBD
customValueOnlyInThisTier: TBD
- name: tierN
valueToSet: TBD
The data for valueToSet and customValueOnlyInThisTier needs to be pull dynamically every time we run an install/upgrade due to vendor limitations. What I would like to do is avoid having to edit the file itself every time we run an upgrade (it is rather gigantic).
- Is there a means to add the value to every element in the array using
--setparameter to the upgrade call? - Is there a way to use a selector for the array to set
customValueOnlyInThisTierusing a syntax like--set vendor.tier[?name="tier3"].customValueOnlyInThisTier=TESTING?
Temporary Workaround
I figured I can do something like this:
# something here that generates PREPEND.yaml
mv values.yaml values.yaml.bak
cat PREPEND.yaml values.yaml.bak > values.yaml
In the generated PREPEND.yaml file I can add something like:
Reference1: &SomeTag1 VALUE_HERE
Reference2: &SomeTag2 VALUE_HERE
Then I can reference that data in the values.yaml this way:
vendor:
tier:
- name: tier1
valueToSet: *SomeTag1
It's hacky, but it works.