helm `set` parameter should accept dict
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 10.1k
- Forks
- 413
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 6
Description
For parameters that set a bunch of options, like values in a template, it can be really useful to allow them to be specified as dictionaries. This allows the value being passed in to be safely built up rather than having to do tedious string manipulation.
This would mean that Tilt would be responsible for converting the dictionary in to the string format that the helm set parameter expects.
Originally reported in the #tilt channel:
What I'm looking to do is reuse the values file of our umbrella chart on the individual repos. Example
- dev installs all services through our umbrella chart
- dev runs tilt up in a specific repo
I want (2) to read the values file of the umbrella chart and apply both the global section, and extract the contents of the chart-specific values.
Example of globalvalues.yaml:
global:
db:
username: "test"
password: "password"
host: "mysql"
# configure a subchart
notifications:
channels:
slack:
webhookUrl: "https://..."
When I run tilt up in the notifications project, I want to pass the following to the helm function:
global:
db:
username: "test"
password: "password"
host: "mysql"
channels:
slack:
webhookUrl: "https://..."
basically extracting the values for that particular chart. I can do the extraction just file with read_yaml, but I don't think there's a way for me to then pass this into the helm function? Is there a way for me to work around this? One workaround I've considered is converting the nested yaml syntax into the dot-nested syntax that --set accepts, but it seems a bit tedious
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Helm function and its handling of the --set parameter, then compare the nested dictionary produced by read_yaml with Helm’s expected value format. Define how nested dictionaries should be converted and how existing --set values interact with them; done means the extracted chart values can be passed directly to helm without manual string manipulation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, helm
- Domain
- devops
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100