-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Description
There seems to be something strange going on with how the merging of affinity values is being done.
When only putting this in values.yaml:
indexer:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- indexer
topologyKey: "kubernetes.io/hostname"
The expected output is rendered in the chart templates.
However, when trying to add affinities to more than one service, such as:
searcher:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- searcher
topologyKey: "kubernetes.io/hostname"
indexer:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- indexer
topologyKey: "kubernetes.io/hostname"
The rendered template for the indexer affinity is what is set for the searcher (and so is the searcher's as expected).
I double checked with trying the following:
searcher:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- searcher
topologyKey: "kubernetes.io/hostname"
indexer:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- indexer
topologyKey: "kubernetes.io/hostname"
metastore:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- metastore
topologyKey: "kubernetes.io/hostname"
Now the rendered affinities for all 3 services are what is set for the searcher.
When only doing this:
indexer:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- indexer
topologyKey: "kubernetes.io/hostname"
metastore:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- quickwit
- key: app.kubernetes.io/component
operator: In
values:
- metastore
topologyKey: "kubernetes.io/hostname"
Both the indexer and metastore affinities are set to only the metastore affinity config in values.yaml.
Metadata
Metadata
Assignees
Labels
No labels