diff --git a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet index 6c9acdaed438ca786d55cd80219f559252167105..c857344df97dbfb2e43fd076ad74333d4813fec5 100644 --- a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet +++ b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet @@ -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: { diff --git a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet index f3a0e0d9e3f458c30be98083ffedd2ebf7697169..4e1709dd57fef362627af17aca79b458f21c9933 100644 --- a/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet +++ b/jsonnet/kube-prometheus/kube-state-metrics/kube-state-metrics.libsonnet @@ -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', diff --git a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet index c2288ce7a64ed4261185264570ed49d3890da8bd..44cc2edd11494e17a3b7934daca5b63d0602197f 100644 --- a/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet +++ b/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet @@ -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] diff --git a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet index 5863367f6efb2090fc7e867600cfef51de47cf9c..e4ba99e388dea6a242308e48e2a5f5a3a1ad1cf8 100644 --- a/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet +++ b/jsonnet/kube-prometheus/prometheus-adapter/prometheus-adapter.libsonnet @@ -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, diff --git a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet index 1545b697693bc4d8bf47ef5cb70de0de878eafbc..3e7e4e96f0b8f5d0976abf5d9d7aee094067ba2d 100644 --- a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet +++ b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet @@ -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',