jsonnet: add recommended k8s labels

This commit is contained in:
paulfantom
2020-12-14 12:39:03 +01:00
parent 7d7d40b4de
commit 3830bc8076
5 changed files with 72 additions and 25 deletions

View File

@@ -51,6 +51,17 @@
],
},
replicas: 3,
labels: {
'app.kubernetes.io/name': 'alertmanager-' + $._config.alertmanager.name,
'app.kubernetes.io/version': $._config.versions.alertmanager,
'app.kubernetes.io/component': 'router',
'app.kubernetes.io/part-of': 'kube-prometheus',
},
selectorLabels: {
[labelName]: $._config.alertmanager.labels[labelName]
for labelName in std.objectFields($._config.alertmanager.labels)
if !std.setMember(labelName, ['app.kubernetes.io/version'])
},
},
},
@@ -87,13 +98,16 @@
metadata: {
name: 'alertmanager-' + $._config.alertmanager.name,
namespace: $._config.namespace,
labels: { alertmanager: $._config.alertmanager.name },
labels: { alertmanager: $._config.alertmanager.name } + $._config.alertmanager.labels,
},
spec: {
ports: [
{ name: 'web', targetPort: 'web', port: 9093 },
],
selector: { app: 'alertmanager', alertmanager: $._config.alertmanager.name },
selector: {
app: 'alertmanager',
alertmanager: $._config.alertmanager.name
} + $._config.alertmanager.selectorLabels,
sessionAffinity: 'ClientIP',
},
},
@@ -104,15 +118,13 @@
metadata: {
name: 'alertmanager',
namespace: $._config.namespace,
labels: {
'k8s-app': 'alertmanager',
},
labels: $._config.alertmanager.labels,
},
spec: {
selector: {
matchLabels: {
alertmanager: $._config.alertmanager.name,
},
} + $._config.alertmanager.selectorLabels,
},
endpoints: [
{ port: 'web', interval: '30s' },
@@ -128,12 +140,15 @@
namespace: $._config.namespace,
labels: {
alertmanager: $._config.alertmanager.name,
},
} + $._config.alertmanager.labels,
},
spec: {
replicas: $._config.alertmanager.replicas,
version: $._config.versions.alertmanager,
image: $._config.imageRepos.alertmanager + ':' + $._config.versions.alertmanager,
podMetadata: {
labels: $._config.alertmanager.labels,
},
nodeSelector: { 'kubernetes.io/os': 'linux' },
serviceAccountName: 'alertmanager-' + $._config.alertmanager.name,
securityContext: {

View File

@@ -12,6 +12,17 @@ local ksm = import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-
kubeStateMetrics+:: {
scrapeInterval: '30s',
scrapeTimeout: '30s',
labels: {
'app.kubernetes.io/name': 'kube-state-metrics',
'app.kubernetes.io/version': $._config.versions.kubeStateMetrics,
'app.kubernetes.io/component': 'exporter',
'app.kubernetes.io/part-of': 'kube-prometheus',
},
selectorLabels: {
[labelName]: $._config.kubeStateMetrics.labels[labelName]
for labelName in std.objectFields($._config.kubeStateMetrics.labels)
if !std.setMember(labelName, ['app.kubernetes.io/version'])
},
},
},
kubeStateMetrics+::
@@ -21,6 +32,8 @@ local ksm = import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-
namespace:: $._config.namespace,
version:: $._config.versions.kubeStateMetrics,
image:: $._config.imageRepos.kubeStateMetrics + ':v' + $._config.versions.kubeStateMetrics,
commonLabels:: $._config.kubeStateMetrics.labels,
podLabels:: $._config.kubeStateMetrics.selectorLabels,
service+: {
spec+: {
ports: [
@@ -58,18 +71,11 @@ local ksm = import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-
metadata: {
name: 'kube-state-metrics',
namespace: $._config.namespace,
labels: {
'app.kubernetes.io/name': 'kube-state-metrics',
'app.kubernetes.io/version': version,
},
labels: $._config.kubeStateMetrics.labels,
},
spec: {
jobLabel: 'app.kubernetes.io/name',
selector: {
matchLabels: {
'app.kubernetes.io/name': 'kube-state-metrics',
},
},
selector: { matchLabels: $._config.kubeStateMetrics.selectorLabels },
endpoints: [
{
port: 'https-main',

View File

@@ -10,6 +10,8 @@
labels: {
'app.kubernetes.io/name': 'node-exporter',
'app.kubernetes.io/version': $._config.versions.nodeExporter,
'app.kubernetes.io/component': 'exporter',
'app.kubernetes.io/part-of': 'kube-prometheus',
},
selectorLabels: {
[labelName]: $._config.nodeExporter.labels[labelName]

View File

@@ -8,7 +8,17 @@
prometheusAdapter+:: {
name: 'prometheus-adapter',
namespace: $._config.namespace,
labels: { name: $._config.prometheusAdapter.name },
labels: {
'app.kubernetes.io/name': $._config.prometheusAdapter.name,
'app.kubernetes.io/version': $._config.versions.prometheusAdapter,
'app.kubernetes.io/component': 'metrics-adapter',
'app.kubernetes.io/part-of': 'kube-prometheus',
},
selectorLabels: {
[labelName]: $._config.prometheusAdapter.labels[labelName]
for labelName in std.objectFields($._config.prometheusAdapter.labels)
if !std.setMember(labelName, ['app.kubernetes.io/version'])
},
prometheusURL: 'http://prometheus-' + $._config.prometheus.name + '.' + $._config.namespace + '.svc.cluster.local:9090/',
config: {
resourceRules: {
@@ -82,7 +92,7 @@
},
spec: {
selector: {
matchLabels: $._config.prometheusAdapter.labels,
matchLabels: $._config.prometheusAdapter.selectorLabels,
},
endpoints: [
{
@@ -110,7 +120,7 @@
ports: [
{ name: 'https', targetPort: 6443, port: 443 },
],
selector: $._config.prometheusAdapter.labels,
selector: $._config.prometheusAdapter.selectorLabels,
},
},
@@ -143,7 +153,7 @@
},
spec: {
replicas: 1,
selector: { matchLabels: $._config.prometheusAdapter.labels },
selector: { matchLabels: $._config.prometheusAdapter.selectorLabels },
strategy: {
rollingUpdate: {
maxSurge: 1,

View File

@@ -13,6 +13,17 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
replicas: 2,
rules: {},
namespaces: ['default', 'kube-system', $._config.namespace],
labels: {
'app.kubernetes.io/name': 'prometheus-' + $._config.prometheus.name,
'app.kubernetes.io/version': $._config.versions.prometheus,
'app.kubernetes.io/component': 'prometheus',
'app.kubernetes.io/part-of': 'kube-prometheus',
},
selectorLabels: {
[labelName]: $._config.prometheus.labels[labelName]
for labelName in std.objectFields($._config.prometheus.labels)
if !std.setMember(labelName, ['app.kubernetes.io/version'])
},
},
},
@@ -41,13 +52,13 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
metadata: {
name: 'prometheus-' + p.name,
namespace: p.namespace,
labels: { prometheus: p.name },
labels: { prometheus: p.name } + $._config.prometheus.labels,
},
spec: {
ports: [
{ name: 'web', targetPort: 'web', port: 9090 },
],
selector: { app: 'prometheus', prometheus: p.name },
selector: { app: 'prometheus', prometheus: p.name } + $._config.prometheus.selectorLabels,
sessionAffinity: 'ClientIP',
},
},
@@ -192,12 +203,15 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
metadata: {
name: p.name,
namespace: p.namespace,
labels: { prometheus: p.name },
labels: { prometheus: p.name } + $._config.prometheus.labels,
},
spec: {
replicas: p.replicas,
version: $._config.versions.prometheus,
image: $._config.imageRepos.prometheus + ':' + $._config.versions.prometheus,
podMetadata: {
labels: $._config.prometheus.labels
},
serviceAccountName: 'prometheus-' + p.name,
serviceMonitorSelector: {},
podMonitorSelector: {},
@@ -236,11 +250,11 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
metadata: {
name: 'prometheus',
namespace: p.namespace,
labels: { 'k8s-app': 'prometheus' },
labels: { 'k8s-app': 'prometheus' } + $._config.prometheus.labels,
},
spec: {
selector: {
matchLabels: { prometheus: p.name },
matchLabels: { prometheus: p.name } + $._config.prometheus.selectorLabels,
},
endpoints: [{
port: 'web',