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 ?
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.