You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HELP Background
Based on different node affinities, I want to deploy distinct daemonsets with just minor differences, like different images. In my chart, there are alse many other resources, like configmap. For now I got three solutions as follows:
Directly use multiple yaml files to support multiple daemonsets. It's not scalable.
I considered using Helm Install twice with different values yaml, but my chart includes other resources with identical YAML. In this case, helm install will get an error and I have to split the chart repository, but it might not be ideal.
I could deploy multiple daemonsets using range, but it would make the values file messy.
I'm wondering if there's a best practice for this. Is there some awesome features that I'm don't know? If you need any info more, just comment. Any suggestions are welcome.
Output of helm version:
version.BuildInfo{Version:"v3.14.3", GitCommit:"f03cc04caaa8f6d7c3e67cf918929150cf6f3f12", GitTreeState:"clean", GoVersion:"go1.22.1"}
Output of kubectl version:
Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.22.7
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
kind
The text was updated successfully, but these errors were encountered:
I could deploy multiple daemonsets using range, but it would make the values file messy.
This would be the standard pattern normally used in situations like this I think. Where you have "many" (ie. user can specify the parameters). In your values, then are going to need something like:
which would drive the different daemonsets via {{- range .Values.daemonsets }}.
If you are only every going to have e.g. two or three daemonsets, you would use option 1. And perhaps a named template for reducing the duplicated yaml (through I would propose you want to err on the side of readability, even if that causes some additional duplication)
@gjenkins8 Thanks for your advice. I decide to put some common daemonset configurations at the top level, then declare unique fields for each daemonset in daemonsets dict to reduce the duplicated parts. Finally just call merge function to get the final values. Is this a good solution?
HELP
Background
Based on different node affinities, I want to deploy distinct daemonsets with just minor differences, like different images. In my chart, there are alse many other resources, like configmap. For now I got three solutions as follows:
range
, but it would make the values file messy.I'm wondering if there's a best practice for this. Is there some awesome features that I'm don't know? If you need any info more, just comment. Any suggestions are welcome.
Output of
helm version
:version.BuildInfo{Version:"v3.14.3", GitCommit:"f03cc04caaa8f6d7c3e67cf918929150cf6f3f12", GitTreeState:"clean", GoVersion:"go1.22.1"}
Output of
kubectl version
:Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.22.7
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
kind
The text was updated successfully, but these errors were encountered: