Merge pull request #1095 from dgrisonnet/prometheus-adapter-ha
Make prometheus-adapter highly-available
This commit is contained in:
@@ -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,
|
||||
),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user