Helm update only one property

6/20/2019

Im using helm to install succesfully components via the following command

helm template install/kubernetes/helm/istio --name istio --namespace istio-system  \ --set tracing.enabled=true --set servicegraph.enabled=true \ --set grafana.enabled=true | kubectl apply -f -

Now I want to change only one property like

--set tracing.enabled=false

I try the following with just the field which I need to modify

helm template update/kubernetes/helm/istio --name istio --namespace istio-system  \ --set tracing.enabled=flase  | kubectl apply -f -

without success, do I miss something ?

-- Nina S
kubernetes
kubernetes-helm

1 Answer

6/20/2019

helm template is totally stateless – it reads a Helm chart's configuration and YAML files, and writes out the YAML that results from applying all of the templates. It has no idea that you've run it before with different options.

The current version of Helm has a cluster-side component called Tiller that keeps track of state like this, and the Istio documentation does have specific instructions for using Tiller. Since there is state kept here, you can do an update like

helm upgrade istio \
  install/kubernetes/helm/istio \
  --reuse-values \
  --set tracing.enabled=false

Another valid option is to keep your install-time options in a YAML file

tracing:
  enabled: true
servicegraph:
  enabled: true
grafana:
  enabled: true

And then you can pass those options using Helm's -f flag

helm template install/kubernetes/helm/istio \
  --name istio \
  -f istio-config.yaml

This option also works with helm install and helm upgrade, and is equivalent to passing all of the --set options you specified.

-- David Maze
Source: StackOverflow