Merge pull request #1471 from paulfantom/metadata-management

jsonnet: unify metadata management
This commit is contained in:
Paweł Krupa
2021-11-02 09:39:48 +01:00
committed by GitHub
28 changed files with 206 additions and 268 deletions

View File

@@ -77,6 +77,11 @@ function(params) {
// Safety check // Safety check
assert std.isObject(am._config.resources), assert std.isObject(am._config.resources),
assert std.isObject(am._config.mixin._config), assert std.isObject(am._config.mixin._config),
_metadata:: {
name: 'alertmanager-' + am._config.name,
namespace: am._config.namespace,
labels: am._config.commonLabels,
},
mixin:: (import 'github.com/prometheus/alertmanager/doc/alertmanager-mixin/mixin.libsonnet') + mixin:: (import 'github.com/prometheus/alertmanager/doc/alertmanager-mixin/mixin.libsonnet') +
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') { (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') {
@@ -86,10 +91,9 @@ function(params) {
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: am._metadata {
labels: am._config.commonLabels + am._config.mixin.ruleLabels, labels+: am._config.mixin.ruleLabels,
name: 'alertmanager-' + am._config.name + '-rules', name: am._metadata.name + '-rules',
namespace: am._config.namespace,
}, },
spec: { spec: {
local r = if std.objectHasAll(am.mixin, 'prometheusRules') then am.mixin.prometheusRules.groups else [], local r = if std.objectHasAll(am.mixin, 'prometheusRules') then am.mixin.prometheusRules.groups else [],
@@ -102,10 +106,8 @@ function(params) {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Secret', kind: 'Secret',
type: 'Opaque', type: 'Opaque',
metadata: { metadata: am._metadata {
name: 'alertmanager-' + am._config.name, labels+: { alertmanager: am._config.name },
namespace: am._config.namespace,
labels: { alertmanager: am._config.name } + am._config.commonLabels,
}, },
stringData: { stringData: {
'alertmanager.yaml': if std.type(am._config.config) == 'object' 'alertmanager.yaml': if std.type(am._config.config) == 'object'
@@ -119,29 +121,25 @@ function(params) {
serviceAccount: { serviceAccount: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ServiceAccount', kind: 'ServiceAccount',
metadata: { metadata: am._metadata {
name: 'alertmanager-' + am._config.name, labels+: { alertmanager: am._config.name },
namespace: am._config.namespace,
labels: { alertmanager: am._config.name } + am._config.commonLabels,
}, },
}, },
service: { service: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata: { metadata: am._metadata {
name: 'alertmanager-' + am._config.name, labels+: { alertmanager: am._config.name },
namespace: am._config.namespace,
labels: { alertmanager: am._config.name } + am._config.commonLabels,
}, },
spec: { spec: {
ports: [ ports: [
{ name: 'web', targetPort: 'web', port: 9093 }, { name: 'web', targetPort: 'web', port: 9093 },
{ name: 'reloader-web', port: am._config.reloaderPort, targetPort: 'reloader-web' }, { name: 'reloader-web', port: am._config.reloaderPort, targetPort: 'reloader-web' },
], ],
selector: { selector: am._config.selectorLabels {
alertmanager: am._config.name, alertmanager: am._config.name,
} + am._config.selectorLabels, },
sessionAffinity: 'ClientIP', sessionAffinity: 'ClientIP',
}, },
}, },
@@ -149,16 +147,12 @@ function(params) {
serviceMonitor: { serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: am._metadata,
name: 'alertmanager',
namespace: am._config.namespace,
labels: am._config.commonLabels,
},
spec: { spec: {
selector: { selector: {
matchLabels: { matchLabels: am._config.selectorLabels {
alertmanager: am._config.name, alertmanager: am._config.name,
} + am._config.selectorLabels, },
}, },
endpoints: [ endpoints: [
{ port: 'web', interval: '30s' }, { port: 'web', interval: '30s' },
@@ -170,17 +164,13 @@ function(params) {
[if (defaults + params).replicas > 1 then 'podDisruptionBudget']: { [if (defaults + params).replicas > 1 then 'podDisruptionBudget']: {
apiVersion: 'policy/v1', apiVersion: 'policy/v1',
kind: 'PodDisruptionBudget', kind: 'PodDisruptionBudget',
metadata: { metadata: am._metadata,
name: 'alertmanager-' + am._config.name,
namespace: am._config.namespace,
labels: am._config.commonLabels,
},
spec: { spec: {
maxUnavailable: 1, maxUnavailable: 1,
selector: { selector: {
matchLabels: { matchLabels: am._config.selectorLabels {
alertmanager: am._config.name, alertmanager: am._config.name,
} + am._config.selectorLabels, },
}, },
}, },
}, },
@@ -188,23 +178,22 @@ function(params) {
alertmanager: { alertmanager: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'Alertmanager', kind: 'Alertmanager',
metadata: { metadata: am._metadata {
name: am._config.name, name: am._config.name,
namespace: am._config.namespace, labels+: {
labels: {
alertmanager: am._config.name, alertmanager: am._config.name,
} + am._config.commonLabels, },
}, },
spec: { spec: {
replicas: am._config.replicas, replicas: am._config.replicas,
version: am._config.version, version: am._config.version,
image: am._config.image, image: am._config.image,
podMetadata: { podMetadata: {
labels: am._config.commonLabels, labels: am.alertmanager.metadata.labels,
}, },
resources: am._config.resources, resources: am._config.resources,
nodeSelector: { 'kubernetes.io/os': 'linux' }, nodeSelector: { 'kubernetes.io/os': 'linux' },
serviceAccountName: 'alertmanager-' + am._config.name, serviceAccountName: am.serviceAccount.metadata.name,
securityContext: { securityContext: {
runAsUser: 1000, runAsUser: 1000,
runAsNonRoot: true, runAsNonRoot: true,

View File

@@ -92,14 +92,17 @@ function(params) {
_config:: defaults + params, _config:: defaults + params,
// Safety check // Safety check
assert std.isObject(bb._config.resources), assert std.isObject(bb._config.resources),
_metadata:: {
name: 'blackbox-exporter',
namespace: bb._config.namespace,
labels: bb._config.commonLabels,
},
configuration: { configuration: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ConfigMap', kind: 'ConfigMap',
metadata: { metadata: bb._metadata {
name: 'blackbox-exporter-configuration', name: 'blackbox-exporter-configuration',
namespace: bb._config.namespace,
labels: bb._config.commonLabels,
}, },
data: { data: {
'config.yml': std.manifestYamlDoc({ modules: bb._config.modules }), 'config.yml': std.manifestYamlDoc({ modules: bb._config.modules }),
@@ -109,10 +112,7 @@ function(params) {
serviceAccount: { serviceAccount: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ServiceAccount', kind: 'ServiceAccount',
metadata: { metadata: bb._metadata,
name: 'blackbox-exporter',
namespace: bb._config.namespace,
},
}, },
clusterRole: { clusterRole: {
@@ -138,9 +138,7 @@ function(params) {
clusterRoleBinding: { clusterRoleBinding: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding', kind: 'ClusterRoleBinding',
metadata: { metadata: bb._metadata,
name: 'blackbox-exporter',
},
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'ClusterRole', kind: 'ClusterRole',
@@ -212,14 +210,12 @@ function(params) {
{ {
apiVersion: 'apps/v1', apiVersion: 'apps/v1',
kind: 'Deployment', kind: 'Deployment',
metadata: { metadata: bb._metadata,
name: 'blackbox-exporter',
namespace: bb._config.namespace,
labels: bb._config.commonLabels,
},
spec: { spec: {
replicas: bb._config.replicas, replicas: bb._config.replicas,
selector: { matchLabels: bb._config.selectorLabels }, selector: {
matchLabels: bb._config.selectorLabels,
},
template: { template: {
metadata: { metadata: {
labels: bb._config.commonLabels, labels: bb._config.commonLabels,
@@ -243,11 +239,7 @@ function(params) {
service: { service: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata: { metadata: bb._metadata,
name: 'blackbox-exporter',
namespace: bb._config.namespace,
labels: bb._config.commonLabels,
},
spec: { spec: {
ports: [{ ports: [{
name: 'https', name: 'https',
@@ -262,29 +254,24 @@ function(params) {
}, },
}, },
serviceMonitor: serviceMonitor: {
{ apiVersion: 'monitoring.coreos.com/v1',
apiVersion: 'monitoring.coreos.com/v1', kind: 'ServiceMonitor',
kind: 'ServiceMonitor', metadata: bb._metadata,
metadata: { spec: {
name: 'blackbox-exporter', endpoints: [{
namespace: bb._config.namespace, bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
labels: bb._config.commonLabels, interval: '30s',
}, path: '/metrics',
spec: { port: 'https',
endpoints: [{ scheme: 'https',
bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', tlsConfig: {
interval: '30s', insecureSkipVerify: true,
path: '/metrics',
port: 'https',
scheme: 'https',
tlsConfig: {
insecureSkipVerify: true,
},
}],
selector: {
matchLabels: bb._config.selectorLabels,
}, },
}],
selector: {
matchLabels: bb._config.selectorLabels,
}, },
}, },
},
} }

View File

@@ -32,15 +32,16 @@ function(params)
kubernetesGrafana(config) { kubernetesGrafana(config) {
local g = self, local g = self,
_config+:: config, _config+:: config,
_metadata:: {
name: 'grafana',
namespace: g._config.namespace,
labels: g._config.commonLabels,
},
serviceMonitor: { serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: g._metadata,
name: 'grafana',
namespace: g._config.namespace,
labels: g._config.commonLabels,
},
spec: { spec: {
selector: { selector: {
matchLabels: { matchLabels: {

View File

@@ -28,6 +28,10 @@ local defaults = {
function(params) { function(params) {
local k8s = self, local k8s = self,
_config:: defaults + params, _config:: defaults + params,
_metadata:: {
labels: k8s._config.commonLabels,
namespace: k8s._config.namespace,
},
mixin:: (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') { mixin:: (import 'github.com/kubernetes-monitoring/kubernetes-mixin/mixin.libsonnet') {
_config+:: k8s._config.mixin._config, _config+:: k8s._config.mixin._config,
@@ -36,10 +40,9 @@ function(params) {
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: k8s._metadata {
labels: k8s._config.commonLabels + k8s._config.mixin.ruleLabels,
name: 'kubernetes-monitoring-rules', name: 'kubernetes-monitoring-rules',
namespace: k8s._config.namespace, labels+: k8s._config.mixin.ruleLabels,
}, },
spec: { spec: {
local r = if std.objectHasAll(k8s.mixin, 'prometheusRules') then k8s.mixin.prometheusRules.groups else {}, local r = if std.objectHasAll(k8s.mixin, 'prometheusRules') then k8s.mixin.prometheusRules.groups else {},
@@ -51,10 +54,9 @@ function(params) {
serviceMonitorKubeScheduler: { serviceMonitorKubeScheduler: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: k8s._metadata {
name: 'kube-scheduler', name: 'kube-scheduler',
namespace: k8s._config.namespace, labels+: { 'app.kubernetes.io/name': 'kube-scheduler' },
labels: { 'app.kubernetes.io/name': 'kube-scheduler' },
}, },
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',
@@ -77,10 +79,9 @@ function(params) {
serviceMonitorKubelet: { serviceMonitorKubelet: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: k8s._metadata {
name: 'kubelet', name: 'kubelet',
namespace: k8s._config.namespace, labels+: { 'app.kubernetes.io/name': 'kubelet' },
labels: { 'app.kubernetes.io/name': 'kubelet' },
}, },
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',
@@ -172,10 +173,9 @@ function(params) {
serviceMonitorKubeControllerManager: { serviceMonitorKubeControllerManager: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: k8s._metadata {
name: 'kube-controller-manager', name: 'kube-controller-manager',
namespace: k8s._config.namespace, labels+: { 'app.kubernetes.io/name': 'kube-controller-manager' },
labels: { 'app.kubernetes.io/name': 'kube-controller-manager' },
}, },
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',
@@ -207,10 +207,9 @@ function(params) {
serviceMonitorApiserver: { serviceMonitorApiserver: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: k8s._metadata {
name: 'kube-apiserver', name: 'kube-apiserver',
namespace: k8s._config.namespace, labels+: { 'app.kubernetes.io/name': 'apiserver' },
labels: { 'app.kubernetes.io/name': 'apiserver' },
}, },
spec: { spec: {
jobLabel: 'component', jobLabel: 'component',
@@ -261,12 +260,9 @@ function(params) {
[if (defaults + params).kubeProxy then 'podMonitorKubeProxy']: { [if (defaults + params).kubeProxy then 'podMonitorKubeProxy']: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PodMonitor', kind: 'PodMonitor',
metadata: { metadata: k8s._metadata {
labels: { labels+: { 'k8s-app': 'kube-proxy' },
'k8s-app': 'kube-proxy',
},
name: 'kube-proxy', name: 'kube-proxy',
namespace: k8s._config.namespace,
}, },
spec: { spec: {
jobLabel: 'k8s-app', jobLabel: 'k8s-app',
@@ -300,10 +296,9 @@ function(params) {
serviceMonitorCoreDNS: { serviceMonitorCoreDNS: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: k8s._metadata {
name: 'coredns', name: 'coredns',
namespace: k8s._config.namespace, labels+: { 'app.kubernetes.io/name': 'coredns' },
labels: { 'app.kubernetes.io/name': 'coredns' },
}, },
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',

View File

@@ -54,6 +54,12 @@ function(params) (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-
commonLabels:: ksm._config.commonLabels, commonLabels:: ksm._config.commonLabels,
podLabels:: ksm._config.selectorLabels, podLabels:: ksm._config.selectorLabels,
_metadata:: {
labels: ksm._config.commonLabels,
name: ksm._config.name,
namespace: ksm._config.namespace,
},
mixin:: (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet') + mixin:: (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-state-metrics-mixin/mixin.libsonnet') +
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') { (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') {
_config+:: ksm._config.mixin._config, _config+:: ksm._config.mixin._config,
@@ -62,10 +68,9 @@ function(params) (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: ksm._metadata {
labels: ksm._config.commonLabels + ksm._config.mixin.ruleLabels, labels+: ksm._config.mixin.ruleLabels,
name: ksm._config.name + '-rules', name: ksm._config.name + '-rules',
namespace: ksm._config.namespace,
}, },
spec: { spec: {
local r = if std.objectHasAll(ksm.mixin, 'prometheusRules') then ksm.mixin.prometheusRules.groups else [], local r = if std.objectHasAll(ksm.mixin, 'prometheusRules') then ksm.mixin.prometheusRules.groups else [],
@@ -135,14 +140,12 @@ function(params) (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube-
{ {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: ksm._metadata,
name: ksm.name,
namespace: ksm._config.namespace,
labels: ksm._config.commonLabels,
},
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',
selector: { matchLabels: ksm._config.selectorLabels }, selector: {
matchLabels: ksm._config.selectorLabels,
},
endpoints: [ endpoints: [
{ {
port: 'https-main', port: 'https-main',

View File

@@ -49,6 +49,11 @@ function(params) {
// Safety check // Safety check
assert std.isObject(ne._config.resources), assert std.isObject(ne._config.resources),
assert std.isObject(ne._config.mixin._config), assert std.isObject(ne._config.mixin._config),
_metadata:: {
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
mixin:: (import 'github.com/prometheus/node_exporter/docs/node-mixin/mixin.libsonnet') + mixin:: (import 'github.com/prometheus/node_exporter/docs/node-mixin/mixin.libsonnet') +
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') { (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') {
@@ -58,10 +63,9 @@ function(params) {
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: ne._metadata {
labels: ne._config.commonLabels + ne._config.mixin.ruleLabels, labels+: ne._config.mixin.ruleLabels,
name: ne._config.name + '-rules', name: ne._config.name + '-rules',
namespace: ne._config.namespace,
}, },
spec: { spec: {
local r = if std.objectHasAll(ne.mixin, 'prometheusRules') then ne.mixin.prometheusRules.groups else [], local r = if std.objectHasAll(ne.mixin, 'prometheusRules') then ne.mixin.prometheusRules.groups else [],
@@ -73,10 +77,7 @@ function(params) {
clusterRoleBinding: { clusterRoleBinding: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding', kind: 'ClusterRoleBinding',
metadata: { metadata: ne._metadata,
name: ne._config.name,
labels: ne._config.commonLabels,
},
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'ClusterRole', kind: 'ClusterRole',
@@ -92,10 +93,7 @@ function(params) {
clusterRole: { clusterRole: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole', kind: 'ClusterRole',
metadata: { metadata: ne._metadata,
name: ne._config.name,
labels: ne._config.commonLabels,
},
rules: [ rules: [
{ {
apiGroups: ['authentication.k8s.io'], apiGroups: ['authentication.k8s.io'],
@@ -113,21 +111,13 @@ function(params) {
serviceAccount: { serviceAccount: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ServiceAccount', kind: 'ServiceAccount',
metadata: { metadata: ne._metadata,
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
}, },
service: { service: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata: { metadata: ne._metadata,
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
spec: { spec: {
ports: [ ports: [
{ name: 'https', targetPort: 'https', port: ne._config.port }, { name: 'https', targetPort: 'https', port: ne._config.port },
@@ -140,11 +130,7 @@ function(params) {
serviceMonitor: { serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: ne._metadata,
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
spec: { spec: {
jobLabel: 'app.kubernetes.io/name', jobLabel: 'app.kubernetes.io/name',
selector: { selector: {
@@ -221,13 +207,11 @@ function(params) {
{ {
apiVersion: 'apps/v1', apiVersion: 'apps/v1',
kind: 'DaemonSet', kind: 'DaemonSet',
metadata: { metadata: ne._metadata,
name: ne._config.name,
namespace: ne._config.namespace,
labels: ne._config.commonLabels,
},
spec: { spec: {
selector: { matchLabels: ne._config.selectorLabels }, selector: {
matchLabels: ne._config.selectorLabels,
},
updateStrategy: { updateStrategy: {
type: 'RollingUpdate', type: 'RollingUpdate',
rollingUpdate: { maxUnavailable: '10%' }, rollingUpdate: { maxUnavailable: '10%' },
@@ -260,6 +244,4 @@ function(params) {
}, },
}, },
}, },
} }

View File

@@ -120,6 +120,12 @@ function(params) {
// Safety check // Safety check
assert std.isObject(pa._config.resources), assert std.isObject(pa._config.resources),
_metadata:: {
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
apiService: { apiService: {
apiVersion: 'apiregistration.k8s.io/v1', apiVersion: 'apiregistration.k8s.io/v1',
kind: 'APIService', kind: 'APIService',
@@ -143,10 +149,8 @@ function(params) {
configMap: { configMap: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ConfigMap', kind: 'ConfigMap',
metadata: { metadata: pa._metadata {
name: 'adapter-config', name: 'adapter-config',
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
}, },
data: { 'config.yaml': std.manifestYamlDoc(pa._config.config) }, data: { 'config.yaml': std.manifestYamlDoc(pa._config.config) },
}, },
@@ -154,11 +158,7 @@ function(params) {
serviceMonitor: { serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: pa._metadata,
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
spec: { spec: {
selector: { selector: {
matchLabels: pa._config.selectorLabels, matchLabels: pa._config.selectorLabels,
@@ -195,11 +195,7 @@ function(params) {
service: { service: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata: { metadata: pa._metadata,
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
spec: { spec: {
ports: [ ports: [
{ name: 'https', targetPort: 6443, port: 443 }, { name: 'https', targetPort: 6443, port: 443 },
@@ -233,14 +229,12 @@ function(params) {
{ {
apiVersion: 'apps/v1', apiVersion: 'apps/v1',
kind: 'Deployment', kind: 'Deployment',
metadata: { metadata: pa._metadata,
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
spec: { spec: {
replicas: pa._config.replicas, replicas: pa._config.replicas,
selector: { matchLabels: pa._config.selectorLabels }, selector: {
matchLabels: pa._config.selectorLabels,
},
strategy: { strategy: {
rollingUpdate: { rollingUpdate: {
maxSurge: 1, maxSurge: 1,
@@ -266,20 +260,13 @@ function(params) {
serviceAccount: { serviceAccount: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ServiceAccount', kind: 'ServiceAccount',
metadata: { metadata: pa._metadata,
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
}, },
clusterRole: { clusterRole: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole', kind: 'ClusterRole',
metadata: { metadata: pa._metadata,
name: pa._config.name,
labels: pa._config.commonLabels,
},
rules: [{ rules: [{
apiGroups: [''], apiGroups: [''],
resources: ['nodes', 'namespaces', 'pods', 'services'], resources: ['nodes', 'namespaces', 'pods', 'services'],
@@ -290,10 +277,7 @@ function(params) {
clusterRoleBinding: { clusterRoleBinding: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding', kind: 'ClusterRoleBinding',
metadata: { metadata: pa._metadata,
name: pa._config.name,
labels: pa._config.commonLabels,
},
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'ClusterRole', kind: 'ClusterRole',
@@ -309,9 +293,8 @@ function(params) {
clusterRoleBindingDelegator: { clusterRoleBindingDelegator: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding', kind: 'ClusterRoleBinding',
metadata: { metadata: pa._metadata {
name: 'resource-metrics:system:auth-delegator', name: 'resource-metrics:system:auth-delegator',
labels: pa._config.commonLabels,
}, },
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
@@ -328,9 +311,8 @@ function(params) {
clusterRoleServerResources: { clusterRoleServerResources: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole', kind: 'ClusterRole',
metadata: { metadata: pa._metadata {
name: 'resource-metrics-server-resources', name: 'resource-metrics-server-resources',
labels: pa._config.commonLabels,
}, },
rules: [{ rules: [{
apiGroups: ['metrics.k8s.io'], apiGroups: ['metrics.k8s.io'],
@@ -342,13 +324,13 @@ function(params) {
clusterRoleAggregatedMetricsReader: { clusterRoleAggregatedMetricsReader: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole', kind: 'ClusterRole',
metadata: { metadata: pa._metadata {
name: 'system:aggregated-metrics-reader', name: 'system:aggregated-metrics-reader',
labels: { labels+: {
'rbac.authorization.k8s.io/aggregate-to-admin': 'true', 'rbac.authorization.k8s.io/aggregate-to-admin': 'true',
'rbac.authorization.k8s.io/aggregate-to-edit': 'true', 'rbac.authorization.k8s.io/aggregate-to-edit': 'true',
'rbac.authorization.k8s.io/aggregate-to-view': 'true', 'rbac.authorization.k8s.io/aggregate-to-view': 'true',
} + pa._config.commonLabels, },
}, },
rules: [{ rules: [{
apiGroups: ['metrics.k8s.io'], apiGroups: ['metrics.k8s.io'],
@@ -360,10 +342,9 @@ function(params) {
roleBindingAuthReader: { roleBindingAuthReader: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'RoleBinding', kind: 'RoleBinding',
metadata: { metadata: pa._metadata {
name: 'resource-metrics-auth-reader', name: 'resource-metrics-auth-reader',
namespace: 'kube-system', namespace: 'kube-system',
labels: pa._config.commonLabels,
}, },
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
@@ -380,11 +361,7 @@ function(params) {
[if (defaults + params).replicas > 1 then 'podDisruptionBudget']: { [if (defaults + params).replicas > 1 then 'podDisruptionBudget']: {
apiVersion: 'policy/v1', apiVersion: 'policy/v1',
kind: 'PodDisruptionBudget', kind: 'PodDisruptionBudget',
metadata: { metadata: pa._metadata,
name: pa._config.name,
namespace: pa._config.namespace,
labels: pa._config.commonLabels,
},
spec: { spec: {
minAvailable: 1, minAvailable: 1,
selector: { selector: {

View File

@@ -45,6 +45,11 @@ function(params)
local po = self, local po = self,
// declare variable as a field to allow overriding options and to have unified API across all components // declare variable as a field to allow overriding options and to have unified API across all components
_config:: config, _config:: config,
_metadata:: {
labels: po._config.commonLabels,
name: po._config.name,
namespace: po._config.namespace,
},
mixin:: (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') + mixin:: (import 'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin/mixin.libsonnet') +
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') { (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') {
_config+:: po._config.mixin._config, _config+:: po._config.mixin._config,

View File

@@ -45,6 +45,11 @@ function(params) {
// Safety check // Safety check
assert std.isObject(p._config.resources), assert std.isObject(p._config.resources),
assert std.isObject(p._config.mixin._config), assert std.isObject(p._config.mixin._config),
_metadata:: {
name: 'prometheus-' + p._config.name,
namespace: p._config.namespace,
labels: p._config.commonLabels,
},
mixin:: mixin::
(import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') + (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') +
@@ -67,10 +72,9 @@ function(params) {
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: p._metadata {
labels: p._config.commonLabels + p._config.mixin.ruleLabels, labels+: p._config.mixin.ruleLabels,
name: 'prometheus-' + p._config.name + '-prometheus-rules', name: p._metadata.name + '-prometheus-rules',
namespace: p._config.namespace,
}, },
spec: { spec: {
local r = if std.objectHasAll(p.mixin, 'prometheusRules') then p.mixin.prometheusRules.groups else [], local r = if std.objectHasAll(p.mixin, 'prometheusRules') then p.mixin.prometheusRules.groups else [],
@@ -82,20 +86,14 @@ function(params) {
serviceAccount: { serviceAccount: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'ServiceAccount', kind: 'ServiceAccount',
metadata: { metadata: p._metadata,
name: 'prometheus-' + p._config.name,
namespace: p._config.namespace,
labels: p._config.commonLabels,
},
}, },
service: { service: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata: { metadata: p._metadata {
name: 'prometheus-' + p._config.name, labels+: { prometheus: p._config.name },
namespace: p._config.namespace,
labels: { prometheus: p._config.name } + p._config.commonLabels,
}, },
spec: { spec: {
ports: [ ports: [
@@ -116,19 +114,17 @@ function(params) {
local newSpecificRoleBinding(namespace) = { local newSpecificRoleBinding(namespace) = {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'RoleBinding', kind: 'RoleBinding',
metadata: { metadata: p._metadata {
name: 'prometheus-' + p._config.name,
namespace: namespace, namespace: namespace,
labels: p._config.commonLabels,
}, },
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'Role', kind: 'Role',
name: 'prometheus-' + p._config.name, name: p._metadata.name,
}, },
subjects: [{ subjects: [{
kind: 'ServiceAccount', kind: 'ServiceAccount',
name: 'prometheus-' + p._config.name, name: p.serviceAccount.metadata.name,
namespace: p._config.namespace, namespace: p._config.namespace,
}], }],
}; };
@@ -141,10 +137,7 @@ function(params) {
clusterRole: { clusterRole: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRole', kind: 'ClusterRole',
metadata: { metadata: p._metadata,
name: 'prometheus-' + p._config.name,
labels: p._config.commonLabels,
},
rules: [ rules: [
{ {
apiGroups: [''], apiGroups: [''],
@@ -161,10 +154,8 @@ function(params) {
roleConfig: { roleConfig: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'Role', kind: 'Role',
metadata: { metadata: p._metadata {
name: 'prometheus-' + p._config.name + '-config', name: p._metadata.name + '-config',
namespace: p._config.namespace,
labels: p._config.commonLabels,
}, },
rules: [{ rules: [{
apiGroups: [''], apiGroups: [''],
@@ -176,19 +167,17 @@ function(params) {
roleBindingConfig: { roleBindingConfig: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'RoleBinding', kind: 'RoleBinding',
metadata: { metadata: p._metadata {
name: 'prometheus-' + p._config.name + '-config', name: p._metadata.name + '-config',
namespace: p._config.namespace,
labels: p._config.commonLabels,
}, },
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'Role', kind: 'Role',
name: 'prometheus-' + p._config.name + '-config', name: p._metadata.name + '-config',
}, },
subjects: [{ subjects: [{
kind: 'ServiceAccount', kind: 'ServiceAccount',
name: 'prometheus-' + p._config.name, name: p._metadata.name,
namespace: p._config.namespace, namespace: p._config.namespace,
}], }],
}, },
@@ -196,18 +185,15 @@ function(params) {
clusterRoleBinding: { clusterRoleBinding: {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'ClusterRoleBinding', kind: 'ClusterRoleBinding',
metadata: { metadata: p._metadata,
name: 'prometheus-' + p._config.name,
labels: p._config.commonLabels,
},
roleRef: { roleRef: {
apiGroup: 'rbac.authorization.k8s.io', apiGroup: 'rbac.authorization.k8s.io',
kind: 'ClusterRole', kind: 'ClusterRole',
name: 'prometheus-' + p._config.name, name: p._metadata.name,
}, },
subjects: [{ subjects: [{
kind: 'ServiceAccount', kind: 'ServiceAccount',
name: 'prometheus-' + p._config.name, name: p._metadata.name,
namespace: p._config.namespace, namespace: p._config.namespace,
}], }],
}, },
@@ -216,10 +202,8 @@ function(params) {
local newSpecificRole(namespace) = { local newSpecificRole(namespace) = {
apiVersion: 'rbac.authorization.k8s.io/v1', apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'Role', kind: 'Role',
metadata: { metadata: p._metadata {
name: 'prometheus-' + p._config.name,
namespace: namespace, namespace: namespace,
labels: p._config.commonLabels,
}, },
rules: [ rules: [
{ {
@@ -248,17 +232,13 @@ function(params) {
[if (defaults + params).replicas > 1 then 'podDisruptionBudget']: { [if (defaults + params).replicas > 1 then 'podDisruptionBudget']: {
apiVersion: 'policy/v1', apiVersion: 'policy/v1',
kind: 'PodDisruptionBudget', kind: 'PodDisruptionBudget',
metadata: { metadata: p._metadata,
name: 'prometheus-' + p._config.name,
namespace: p._config.namespace,
labels: p._config.commonLabels,
},
spec: { spec: {
minAvailable: 1, minAvailable: 1,
selector: { selector: {
matchLabels: { matchLabels: p._config.selectorLabels {
prometheus: p._config.name, prometheus: p._config.name,
} + p._config.selectorLabels, },
}, },
}, },
}, },
@@ -266,21 +246,20 @@ function(params) {
prometheus: { prometheus: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'Prometheus', kind: 'Prometheus',
metadata: { metadata: p._metadata {
name: p._config.name, name: p._config.name,
namespace: p._config.namespace, labels+: { prometheus: p._config.name },
labels: { prometheus: p._config.name } + p._config.commonLabels,
}, },
spec: { spec: {
replicas: p._config.replicas, replicas: p._config.replicas,
version: p._config.version, version: p._config.version,
image: p._config.image, image: p._config.image,
podMetadata: { podMetadata: {
labels: p._config.commonLabels, labels: p.prometheus.metadata.labels,
}, },
externalLabels: p._config.externalLabels, externalLabels: p._config.externalLabels,
enableFeatures: p._config.enableFeatures, enableFeatures: p._config.enableFeatures,
serviceAccountName: 'prometheus-' + p._config.name, serviceAccountName: p.serviceAccount.metadata.name,
podMonitorSelector: {}, podMonitorSelector: {},
podMonitorNamespaceSelector: {}, podMonitorNamespaceSelector: {},
probeSelector: {}, probeSelector: {},
@@ -311,11 +290,7 @@ function(params) {
serviceMonitor: { serviceMonitor: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata: { metadata: p._metadata,
name: 'prometheus-' + p._config.name,
namespace: p._config.namespace,
labels: p._config.commonLabels,
},
spec: { spec: {
selector: { selector: {
matchLabels: p._config.selectorLabels, matchLabels: p._config.selectorLabels,
@@ -331,10 +306,9 @@ function(params) {
[if std.objectHas(params, 'thanos') && params.thanos != null then 'prometheusRuleThanosSidecar']: { [if std.objectHas(params, 'thanos') && params.thanos != null then 'prometheusRuleThanosSidecar']: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule', kind: 'PrometheusRule',
metadata: { metadata: p._metadata {
labels: p._config.commonLabels + p._config.mixin.ruleLabels, labels+: p._config.mixin.ruleLabels,
name: 'prometheus-' + p._config.name + '-thanos-sidecar-rules', name: p._metadata.name + '-thanos-sidecar-rules',
namespace: p._config.namespace,
}, },
spec: { spec: {
local r = if std.objectHasAll(p.mixinThanos, 'prometheusRules') then p.mixinThanos.prometheusRules.groups else [], local r = if std.objectHasAll(p.mixinThanos, 'prometheusRules') then p.mixinThanos.prometheusRules.groups else [],
@@ -347,10 +321,9 @@ function(params) {
[if std.objectHas(params, 'thanos') && params.thanos != null then 'serviceThanosSidecar']: { [if std.objectHas(params, 'thanos') && params.thanos != null then 'serviceThanosSidecar']: {
apiVersion: 'v1', apiVersion: 'v1',
kind: 'Service', kind: 'Service',
metadata+: { metadata+: p._metadata {
name: 'prometheus-' + p._config.name + '-thanos-sidecar', name: p._metadata.name + '-thanos-sidecar',
namespace: p._config.namespace, labels+: {
labels+: p._config.commonLabels {
prometheus: p._config.name, prometheus: p._config.name,
'app.kubernetes.io/component': 'thanos-sidecar', 'app.kubernetes.io/component': 'thanos-sidecar',
}, },
@@ -372,10 +345,9 @@ function(params) {
[if std.objectHas(params, 'thanos') && params.thanos != null then 'serviceMonitorThanosSidecar']: { [if std.objectHas(params, 'thanos') && params.thanos != null then 'serviceMonitorThanosSidecar']: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
kind: 'ServiceMonitor', kind: 'ServiceMonitor',
metadata+: { metadata+: p._metadata {
name: 'thanos-sidecar', name: 'thanos-sidecar',
namespace: p._config.namespace, labels+: {
labels: p._config.commonLabels {
prometheus: p._config.name, prometheus: p._config.name,
'app.kubernetes.io/component': 'thanos-sidecar', 'app.kubernetes.io/component': 'thanos-sidecar',
}, },

View File

@@ -15,6 +15,7 @@ spec:
kubernetes.io/os: linux kubernetes.io/os: linux
podMetadata: podMetadata:
labels: labels:
alertmanager: main
app.kubernetes.io/component: alert-router app.kubernetes.io/component: alert-router
app.kubernetes.io/name: alertmanager app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus

View File

@@ -6,7 +6,7 @@ metadata:
app.kubernetes.io/name: alertmanager app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.23.0 app.kubernetes.io/version: 0.23.0
name: alertmanager name: alertmanager-main
namespace: monitoring namespace: monitoring
spec: spec:
endpoints: endpoints:

View File

@@ -1,7 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: blackbox-exporter
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.19.0
name: blackbox-exporter name: blackbox-exporter
namespace: monitoring
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole

View File

@@ -1,5 +1,10 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: blackbox-exporter
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.19.0
name: blackbox-exporter name: blackbox-exporter
namespace: monitoring namespace: monitoring

View File

@@ -3,6 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: apiserver app.kubernetes.io/name: apiserver
app.kubernetes.io/part-of: kube-prometheus
name: kube-apiserver name: kube-apiserver
namespace: monitoring namespace: monitoring
spec: spec:

View File

@@ -3,6 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: coredns app.kubernetes.io/name: coredns
app.kubernetes.io/part-of: kube-prometheus
name: coredns name: coredns
namespace: monitoring namespace: monitoring
spec: spec:

View File

@@ -3,6 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-controller-manager app.kubernetes.io/name: kube-controller-manager
app.kubernetes.io/part-of: kube-prometheus
name: kube-controller-manager name: kube-controller-manager
namespace: monitoring namespace: monitoring
spec: spec:

View File

@@ -3,6 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kube-scheduler app.kubernetes.io/name: kube-scheduler
app.kubernetes.io/part-of: kube-prometheus
name: kube-scheduler name: kube-scheduler
namespace: monitoring namespace: monitoring
spec: spec:

View File

@@ -3,6 +3,7 @@ kind: ServiceMonitor
metadata: metadata:
labels: labels:
app.kubernetes.io/name: kubelet app.kubernetes.io/name: kubelet
app.kubernetes.io/part-of: kube-prometheus
name: kubelet name: kubelet
namespace: monitoring namespace: monitoring
spec: spec:

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 1.2.2 app.kubernetes.io/version: 1.2.2
name: node-exporter name: node-exporter
namespace: monitoring
rules: rules:
- apiGroups: - apiGroups:
- authentication.k8s.io - authentication.k8s.io

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 1.2.2 app.kubernetes.io/version: 1.2.2
name: node-exporter name: node-exporter
namespace: monitoring
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.9.1 app.kubernetes.io/version: 0.9.1
name: prometheus-adapter name: prometheus-adapter
namespace: monitoring
rules: rules:
- apiGroups: - apiGroups:
- "" - ""

View File

@@ -10,6 +10,7 @@ metadata:
rbac.authorization.k8s.io/aggregate-to-edit: "true" rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-view: "true" rbac.authorization.k8s.io/aggregate-to-view: "true"
name: system:aggregated-metrics-reader name: system:aggregated-metrics-reader
namespace: monitoring
rules: rules:
- apiGroups: - apiGroups:
- metrics.k8s.io - metrics.k8s.io

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.9.1 app.kubernetes.io/version: 0.9.1
name: prometheus-adapter name: prometheus-adapter
namespace: monitoring
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.9.1 app.kubernetes.io/version: 0.9.1
name: resource-metrics:system:auth-delegator name: resource-metrics:system:auth-delegator
namespace: monitoring
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.9.1 app.kubernetes.io/version: 0.9.1
name: resource-metrics-server-resources name: resource-metrics-server-resources
namespace: monitoring
rules: rules:
- apiGroups: - apiGroups:
- metrics.k8s.io - metrics.k8s.io

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 2.30.3 app.kubernetes.io/version: 2.30.3
name: prometheus-k8s name: prometheus-k8s
namespace: monitoring
rules: rules:
- apiGroups: - apiGroups:
- "" - ""

View File

@@ -7,6 +7,7 @@ metadata:
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 2.30.3 app.kubernetes.io/version: 2.30.3
name: prometheus-k8s name: prometheus-k8s
namespace: monitoring
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole

View File

@@ -27,6 +27,7 @@ spec:
app.kubernetes.io/name: prometheus app.kubernetes.io/name: prometheus
app.kubernetes.io/part-of: kube-prometheus app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 2.30.3 app.kubernetes.io/version: 2.30.3
prometheus: k8s
podMonitorNamespaceSelector: {} podMonitorNamespaceSelector: {}
podMonitorSelector: {} podMonitorSelector: {}
probeNamespaceSelector: {} probeNamespaceSelector: {}