Is there any way to configure istio via helm or something (without manually touching deployments) to scale (or perhaps setting them as DaemonSet). I’ve just had half of my istio plane fail because of a single node failure. What are best practices on this?
Customize your helm install? You can do this while installing using helm - https://github.com/istio/istio/blob/406e15e8ca3fc8ba7281cd156b10db58afe40f91/install/kubernetes/helm/istio/README.md#configuration
I usually edit the values directly in the deployment templates (also the HPA) inside the subcharts.
I think that the best way to customize isito is to use a values.yaml file.
You have to define a yaml file to override default values in $ISTIO_HOME/install/kubernetes/helm/istio/values.yaml
.
For example:
global:
proxy:
privileged: true
grafana:
enabled: true
servicegraph:
enabled: true
tracing:
enabled: true
kiali:
enabled: true
tag: v0.13
Then apply the change as following:
helm install -f values.yaml $ISTIO_HOME/install/kubernetes/helm/istio --name istio --namespace $ISTIO_NAMESPACE
Or (if Istio is already installed):
Helm upgrade -f values.yaml istio $ISTIO_HOME/install/kubernetes/helm/istio
It’s also a good practice to define a value file for each of your environments : value-prod.yaml
, values-staging.yaml,
values-dev.yaml
…
I would not recommend to change directly the deployment templates. I would prefer in this case to raise an issue with the use case so values will be extracted and provided for customization in the future version of the chart if the use case is pertinent.
Question is does the chart support values for deployment types (daemonset, deployment), scale and similar?
Is there an “official” way for that or do i need to fork the chart?
Yes, every parameterized value in subcharts ($ISTIO_HOME/install/kubernetes/helm/istio/charts
) could be overridden. Let’s say that you want to customize the replicaCount for pilot ($ISTIO_HOME/install/kubernetes/helm/istio/charts/pilot/template/deployment.yaml
)
spec:
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
istio: pilot
app: pilot
This is should be doable by putting the following lines in your values.yaml
pilot:
replicaCount: 3
This way, all customization go through values.yaml file and you don’t need to override subcharts template files.
Does the question is: can we replace deployment by Daemonset?
I see now that values are in subcharts, How do i override the values of a subchart?
Do i use:
subchartname:
value: x
Also there is no way to deploy it as DaemonSet as far I see @Julien_Senon
I will make a git request
yes, that’s how helm works.
Thanks for info.
Here i have opened a git issue regarding the Daemonset and disscussion about that, feel free to join:
I sent a PR related to this disscussion.
I will try to consider docs for deploying ingressgateway as Daemonset, so I would be very happy if you could help me out.