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=falseI 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=falseAnother valid option is to keep your install-time options in a YAML file
tracing:
enabled: true
servicegraph:
enabled: true
grafana:
enabled: trueAnd 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.