mirror of
https://github.com/prometheus-operator/kube-prometheus.git
synced 2025-11-02 17:11:44 +01:00
addons/anti-affinity: Support soft/hard podAntiAffinity and topologyKey
This commit is contained in:
parent
f039fc94cf
commit
32bfeea94f
@ -1,38 +1,69 @@
|
|||||||
{
|
{
|
||||||
local antiaffinity(key, values, namespace) = {
|
values+:: {
|
||||||
affinity: {
|
alertmanager+: {
|
||||||
podAntiAffinity: {
|
podAntiAffinity: 'soft',
|
||||||
preferredDuringSchedulingIgnoredDuringExecution: [
|
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
|
||||||
{
|
},
|
||||||
weight: 100,
|
prometheus+: {
|
||||||
podAffinityTerm: {
|
podAntiAffinity: 'soft',
|
||||||
namespaces: [namespace],
|
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
|
||||||
topologyKey: 'kubernetes.io/hostname',
|
},
|
||||||
labelSelector: {
|
blackboxExporter+: {
|
||||||
matchExpressions: [{
|
podAntiAffinity: 'soft',
|
||||||
key: key,
|
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
|
||||||
operator: 'In',
|
},
|
||||||
values: values,
|
},
|
||||||
}],
|
|
||||||
},
|
local antiaffinity(key, values, namespace, type, topologyKey) = {
|
||||||
},
|
local podAffinityTerm = {
|
||||||
},
|
namespaces: [namespace],
|
||||||
],
|
topologyKey: topologyKey,
|
||||||
|
labelSelector: {
|
||||||
|
matchExpressions: [{
|
||||||
|
key: key,
|
||||||
|
operator: 'In',
|
||||||
|
values: values,
|
||||||
|
}],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
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 @@
|
|||||||
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,
|
||||||
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user