I'm installing the prometheus-redis-exporter Helm chart. Its Deployment
object has a way to inject annotations:
# deployment.yaml
...
template:
metadata:
annotations:
{{ toYaml .Values.annotations | indent 8 }}
Typically if I was providing a values file, I could just do this:
# values.yaml
annotations:
foo: bar
bash: baz
And then install the chart with:
helm install --values values.yaml
However, in some cases it is more simple for me to specify these values on the command line with --set
instead, I'm just not sure how I would specify a nested set like that.
How can I set the above annotations
object when installing a helm chart on the commandline:
helm install --set <what_goes_here>
The helm
docu has a section The Format and Limitations of --set, which contains what you are looking for.
--set outer.inner=value
results in:
outer:
inner: value
Therefore your whole helm
command looks like this:
helm install --set annotations.foo=bar,annotations.bash=baz stable/prometheus-redis-exporter
Just to add, if you are looking to override a key with a "." in the key name, add a back slash ("\") before the ".".
for example, with values (taken from grafana):
grafana.ini:
server:
root_url: https://my.example.com
To edit the root_url
value we would pass --set grafana\.ini.server.root_url=https://your.example.com