Merge pull request #1095 from dgrisonnet/prometheus-adapter-ha

Make prometheus-adapter highly-available
This commit is contained in:
Paweł Krupa
2021-04-22 12:00:39 +02:00
committed by GitHub
3 changed files with 29 additions and 16 deletions

View File

@@ -12,18 +12,18 @@
podAntiAffinity: 'soft',
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
},
prometheusAdapter+: {
podAntiAffinity: 'soft',
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
},
},
local antiaffinity(key, values, namespace, type, topologyKey) = {
local antiaffinity(labelSelector, namespace, type, topologyKey) = {
local podAffinityTerm = {
namespaces: [namespace],
topologyKey: topologyKey,
labelSelector: {
matchExpressions: [{
key: key,
operator: 'In',
values: values,
}],
matchLabels: labelSelector,
},
},
@@ -45,8 +45,7 @@
alertmanager+: {
spec+:
antiaffinity(
'alertmanager',
[$.values.alertmanager.name],
$.alertmanager.config.selectorLabels,
$.values.common.namespace,
$.values.alertmanager.podAntiAffinity,
$.values.alertmanager.podAntiAffinityTopologyKey,
@@ -58,8 +57,7 @@
prometheus+: {
spec+:
antiaffinity(
'prometheus',
[$.values.prometheus.name],
$.prometheus.config.selectorLabels,
$.values.common.namespace,
$.values.prometheus.podAntiAffinity,
$.values.prometheus.podAntiAffinityTopologyKey,
@@ -73,8 +71,7 @@
template+: {
spec+:
antiaffinity(
'app.kubernetes.io/name',
['blackbox-exporter'],
$.blackboxExporter.config.selectorLabels,
$.values.common.namespace,
$.values.blackboxExporter.podAntiAffinity,
$.values.blackboxExporter.podAntiAffinityTopologyKey,
@@ -84,4 +81,19 @@
},
},
prometheusAdapter+: {
deployment+: {
spec+: {
template+: {
spec+:
antiaffinity(
$.prometheusAdapter.config.selectorLabels,
$.values.common.namespace,
$.values.prometheusAdapter.podAntiAffinity,
$.values.prometheusAdapter.podAntiAffinityTopologyKey,
),
},
},
},
},
}

View File

@@ -8,6 +8,7 @@ local defaults = {
requests: { cpu: '102m', memory: '180Mi' },
limits: { cpu: '250m', memory: '180Mi' },
},
replicas: 2,
listenAddress: '127.0.0.1',
port: 9100,
commonLabels:: {
@@ -162,12 +163,12 @@ function(params) {
labels: pa._config.commonLabels,
},
spec: {
replicas: 1,
replicas: pa._config.replicas,
selector: { matchLabels: pa._config.selectorLabels },
strategy: {
rollingUpdate: {
maxSurge: 1,
maxUnavailable: 0,
maxUnavailable: 1,
},
},
template: {

View File

@@ -9,7 +9,7 @@ metadata:
name: prometheus-adapter
namespace: monitoring
spec:
replicas: 1
replicas: 2
selector:
matchLabels:
app.kubernetes.io/component: metrics-adapter
@@ -18,7 +18,7 @@ spec:
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
maxUnavailable: 1
template:
metadata:
labels: