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',
|
podAntiAffinity: 'soft',
|
||||||
podAntiAffinityTopologyKey: 'kubernetes.io/hostname',
|
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 = {
|
local podAffinityTerm = {
|
||||||
namespaces: [namespace],
|
namespaces: [namespace],
|
||||||
topologyKey: topologyKey,
|
topologyKey: topologyKey,
|
||||||
labelSelector: {
|
labelSelector: {
|
||||||
matchExpressions: [{
|
matchLabels: labelSelector,
|
||||||
key: key,
|
|
||||||
operator: 'In',
|
|
||||||
values: values,
|
|
||||||
}],
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -45,8 +45,7 @@
|
|||||||
alertmanager+: {
|
alertmanager+: {
|
||||||
spec+:
|
spec+:
|
||||||
antiaffinity(
|
antiaffinity(
|
||||||
'alertmanager',
|
$.alertmanager.config.selectorLabels,
|
||||||
[$.values.alertmanager.name],
|
|
||||||
$.values.common.namespace,
|
$.values.common.namespace,
|
||||||
$.values.alertmanager.podAntiAffinity,
|
$.values.alertmanager.podAntiAffinity,
|
||||||
$.values.alertmanager.podAntiAffinityTopologyKey,
|
$.values.alertmanager.podAntiAffinityTopologyKey,
|
||||||
@@ -58,8 +57,7 @@
|
|||||||
prometheus+: {
|
prometheus+: {
|
||||||
spec+:
|
spec+:
|
||||||
antiaffinity(
|
antiaffinity(
|
||||||
'prometheus',
|
$.prometheus.config.selectorLabels,
|
||||||
[$.values.prometheus.name],
|
|
||||||
$.values.common.namespace,
|
$.values.common.namespace,
|
||||||
$.values.prometheus.podAntiAffinity,
|
$.values.prometheus.podAntiAffinity,
|
||||||
$.values.prometheus.podAntiAffinityTopologyKey,
|
$.values.prometheus.podAntiAffinityTopologyKey,
|
||||||
@@ -73,8 +71,7 @@
|
|||||||
template+: {
|
template+: {
|
||||||
spec+:
|
spec+:
|
||||||
antiaffinity(
|
antiaffinity(
|
||||||
'app.kubernetes.io/name',
|
$.blackboxExporter.config.selectorLabels,
|
||||||
['blackbox-exporter'],
|
|
||||||
$.values.common.namespace,
|
$.values.common.namespace,
|
||||||
$.values.blackboxExporter.podAntiAffinity,
|
$.values.blackboxExporter.podAntiAffinity,
|
||||||
$.values.blackboxExporter.podAntiAffinityTopologyKey,
|
$.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' },
|
requests: { cpu: '102m', memory: '180Mi' },
|
||||||
limits: { cpu: '250m', memory: '180Mi' },
|
limits: { cpu: '250m', memory: '180Mi' },
|
||||||
},
|
},
|
||||||
|
replicas: 2,
|
||||||
listenAddress: '127.0.0.1',
|
listenAddress: '127.0.0.1',
|
||||||
port: 9100,
|
port: 9100,
|
||||||
commonLabels:: {
|
commonLabels:: {
|
||||||
@@ -162,12 +163,12 @@ function(params) {
|
|||||||
labels: pa._config.commonLabels,
|
labels: pa._config.commonLabels,
|
||||||
},
|
},
|
||||||
spec: {
|
spec: {
|
||||||
replicas: 1,
|
replicas: pa._config.replicas,
|
||||||
selector: { matchLabels: pa._config.selectorLabels },
|
selector: { matchLabels: pa._config.selectorLabels },
|
||||||
strategy: {
|
strategy: {
|
||||||
rollingUpdate: {
|
rollingUpdate: {
|
||||||
maxSurge: 1,
|
maxSurge: 1,
|
||||||
maxUnavailable: 0,
|
maxUnavailable: 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
template: {
|
template: {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ metadata:
|
|||||||
name: prometheus-adapter
|
name: prometheus-adapter
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 2
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: metrics-adapter
|
app.kubernetes.io/component: metrics-adapter
|
||||||
@@ -18,7 +18,7 @@ spec:
|
|||||||
strategy:
|
strategy:
|
||||||
rollingUpdate:
|
rollingUpdate:
|
||||||
maxSurge: 1
|
maxSurge: 1
|
||||||
maxUnavailable: 0
|
maxUnavailable: 1
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
|||||||
Reference in New Issue
Block a user