Skip to content
Snippets Groups Projects
Unverified Commit 32bfeea9 authored by Maxime Brunet's avatar Maxime Brunet
Browse files

addons/anti-affinity: Support soft/hard podAntiAffinity and topologyKey

parent f039fc94
No related branches found
No related tags found
No related merge requests found
{ {
local antiaffinity(key, values, namespace) = { values+:: {
affinity: { alertmanager+: {
podAntiAffinity: { podAntiAffinity: 'soft',
preferredDuringSchedulingIgnoredDuringExecution: [ podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
{ },
weight: 100, prometheus+: {
podAffinityTerm: { podAntiAffinity: 'soft',
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
},
blackboxExporter+: {
podAntiAffinity: 'soft',
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
},
},
local antiaffinity(key, values, namespace, type, topologyKey) = {
local podAffinityTerm = {
namespaces: [namespace], namespaces: [namespace],
topologyKey: 'kubernetes.io/hostname', topologyKey: topologyKey,
labelSelector: { labelSelector: {
matchExpressions: [{ matchExpressions: [{
key: key, key: key,
...@@ -16,23 +26,44 @@ ...@@ -16,23 +26,44 @@
}], }],
}, },
}, },
},
affinity: {
podAntiAffinity: if type == 'soft' then {
preferredDuringSchedulingIgnoredDuringExecution: [{
weight: 100,
podAffinityTerm: podAffinityTerm,
}],
} else if type == 'hard' then {
requiredDuringSchedulingIgnoredDuringExecution: [
podAffinityTerm,
], ],
}, } else error 'podAntiAffinity must be either "soft" or "hard"',
}, },
}, },
alertmanager+: { alertmanager+: {
alertmanager+: { alertmanager+: {
spec+: spec+:
antiaffinity('alertmanager', [$.values.alertmanager.name], $.values.common.namespace), antiaffinity(
'alertmanager',
[$.values.alertmanager.name],
$.values.common.namespace,
$.values.alertmanager.podAntiAffinity,
$.values.alertmanager.podAntiAffinityTopologyKey,
),
}, },
}, },
prometheus+: { prometheus+: {
prometheus+: { prometheus+: {
spec+: spec+:
antiaffinity('prometheus', [$.values.prometheus.name], $.values.common.namespace), antiaffinity(
'prometheus',
[$.values.prometheus.name],
$.values.common.namespace,
$.values.prometheus.podAntiAffinity,
$.values.prometheus.podAntiAffinityTopologyKey,
),
}, },
}, },
...@@ -41,7 +72,13 @@ ...@@ -41,7 +72,13 @@
spec+: { spec+: {
template+: { template+: {
spec+: spec+:
antiaffinity('app.kubernetes.io/name', ['blackbox-exporter'], $.values.common.namespace), antiaffinity(
'app.kubernetes.io/name',
['blackbox-exporter'],
$.values.common.namespace,
$.values.blackboxExporter.podAntiAffinity,
$.values.blackboxExporter.podAntiAffinityTopologyKey,
),
}, },
}, },
}, },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment