diff --git a/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet index ab5dceae5c3e9330ba8799a5fad242bfb532db8b..73d0b9d741e9413425d56ee643f754af6039279d 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet @@ -10,10 +10,7 @@ interval: '30s', bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', relabelings: [ - { - sourceLabels: ['__metrics_path__'], - targetLabel: 'metrics_path' - }, + { sourceLabels: ['__metrics_path__'], targetLabel: 'metrics_path' }, ], }, { @@ -24,10 +21,7 @@ honorLabels: true, bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', relabelings: [ - { - sourceLabels: ['__metrics_path__'], - targetLabel: 'metrics_path' - }, + { sourceLabels: ['__metrics_path__'], targetLabel: 'metrics_path' }, ], metricRelabelings: [ // Drop a bunch of metrics which are disabled but still sent, see diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet index 37760404511b502fe96488ae267d3ab6aff28d82..7311c366d555bdae094899bc0ad1a03686008a8d 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet @@ -1,13 +1,20 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; - { prometheus+:: { - kubeDnsPrometheusDiscoveryService: - service.new('kube-dns-prometheus-discovery', { 'k8s-app': 'kube-dns' }, [servicePort.newNamed('metrics', 9153, 9153)]) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-dns' }) + - service.mixin.spec.withClusterIp('None'), + kubeDnsPrometheusDiscoveryService: { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: 'kube-dns-prometheus-discovery', + namespace: 'kube-system', + labels: { 'k8s-app': 'kube-dns' }, + }, + spec: { + ports: [ + { name: 'metrics', port: 9153, targetPort: 9153 }, + ], + selector: { 'k8s-app': 'kube-dns' }, + cluserAPI: 'None', + }, + }, }, } diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet index 9f9bb9503c0c6f0480ea9ae25431f1a7d5e1aa86..8db8c2990e139dae27b7e8d46f02ed875018c421 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet @@ -1,23 +1,40 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; +local service(name, namespace, labels, selector, ports) = { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: name, + namespace: namespace, + labels: labels, + }, + spec: { + ports+: ports, + selector: selector, + clusterIP: 'None', + }, +}; { prometheus+:: { - kubeControllerManagerPrometheusDiscoveryService: - service.new('kube-controller-manager-prometheus-discovery', { 'k8s-app': 'kube-controller-manager' }, servicePort.newNamed('https-metrics', 10257, 10257)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) + - service.mixin.spec.withClusterIp('None'), - kubeSchedulerPrometheusDiscoveryService: - service.new('kube-scheduler-prometheus-discovery', { 'k8s-app': 'kube-scheduler' }, servicePort.newNamed('https-metrics', 10259, 10259)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) + - service.mixin.spec.withClusterIp('None'), - kubeDnsPrometheusDiscoveryService: - service.new('kube-dns-prometheus-discovery', { 'k8s-app': 'kube-dns' }, [servicePort.newNamed('metrics', 10055, 10055), servicePort.newNamed('http-metrics-dnsmasq', 10054, 10054)]) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-dns' }) + - service.mixin.spec.withClusterIp('None'), + kubeControllerManagerPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-controller-manager' }, + { 'k8s-app': 'kube-controller-manager' }, + [{ name: 'https-metrics', port: 10257, targetPort: 10257 }] + ), + kubeSchedulerPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-scheduler' }, + { 'k8s-app': 'kube-scheduler' }, + [{ name: 'https-metrics', port: 10259, targetPort: 10259 }] + ), + kubeDnsPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-dns' }, + { 'k8s-app': 'kube-dns' }, + [{ name: 'metrics', port: 10055, targetPort: 10055 }, { name: 'http-metrics-dnsmasq', port: 10054, targetPort: 10054 }] + ), }, } diff --git a/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet index bd7ea6caa845d8fe7170503cde85277f71d3d0af..ae8d364d2492cf6a05037430ff925187913d3b6b 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet @@ -1,18 +1,33 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; +local service(name, namespace, labels, selector, ports) = { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: name, + namespace: namespace, + labels: labels, + }, + spec: { + ports+: ports, + selector: selector, + clusterIP: 'None', + }, +}; { prometheus+: { - kubeControllerManagerPrometheusDiscoveryService: - service.new('kube-controller-manager-prometheus-discovery', { 'k8s-app': 'kube-controller-manager' }, servicePort.newNamed('https-metrics', 10257, 10257)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) + - service.mixin.spec.withClusterIp('None'), - kubeSchedulerPrometheusDiscoveryService: - service.new('kube-scheduler-prometheus-discovery', { 'k8s-app': 'kube-scheduler' }, servicePort.newNamed('https-metrics', 10259, 10259)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) + - service.mixin.spec.withClusterIp('None'), + kubeControllerManagerPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-controller-manager' }, + { 'k8s-app': 'kube-controller-manager' }, + [{ name: 'https-metrics', port: 10257, targetPort: 10257 }], + ), + kubeSchedulerPrometheusDiscoveryService: service( + 'kube-scheduler-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-scheduler' }, + { 'k8s-app': 'kube-scheduler' }, + [{ name: 'https-metrics', port: 10259, targetPort: 10259 }], + ), }, } diff --git a/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet index 1481c596842b2a29a9189584b95c8b6bb04de481..0eccc939c2f3e5a6ef395cf6e40ed2bb0ec0f58d 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet @@ -1,18 +1,33 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; +local service(name, namespace, labels, selector, ports) = { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: name, + namespace: namespace, + labels: labels, + }, + spec: { + ports+: ports, + selector: selector, + clusterIP: 'None', + }, +}; { prometheus+: { - kubeControllerManagerPrometheusDiscoveryService: - service.new('kube-controller-manager-prometheus-discovery', { component: 'kube-controller-manager' }, servicePort.newNamed('https-metrics', 10257, 10257)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) + - service.mixin.spec.withClusterIp('None'), - kubeSchedulerPrometheusDiscoveryService: - service.new('kube-scheduler-prometheus-discovery', { component: 'kube-scheduler' }, servicePort.newNamed('https-metrics', 10259, 10259)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) + - service.mixin.spec.withClusterIp('None'), + kubeControllerManagerPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-controller-manager' }, + { 'k8s-app': 'kube-controller-manager' }, + [{ name: 'https-metrics', port: 10257, targetPort: 10257 }] + ), + kubeSchedulerPrometheusDiscoveryService: service( + 'kube-scheduler-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-scheduler' }, + { 'k8s-app': 'kube-scheduler' }, + [{ name: 'https-metrics', port: 10259, targetPort: 10259 }], + ), }, } diff --git a/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet index fbda4a9eb432b2dfc98417f15d73220e7882b300..c1e7682d57842bfa039cec4bf20c6cca11e93849 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet @@ -1,20 +1,36 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; +local service(name, namespace, labels, selector, ports) = { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: name, + namespace: namespace, + labels: labels, + }, + spec: { + ports+: ports, + selector: selector, + clusterIP: 'None', + }, +}; { prometheus+: { - kubeControllerManagerPrometheusDiscoveryService: - service.new('kube-controller-manager-prometheus-discovery', { 'component': 'kube-controller-manager' }, servicePort.newNamed('https-metrics', 10257, 10257)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) + - service.mixin.spec.withClusterIp('None'), - kubeSchedulerPrometheusDiscoveryService: - service.new('kube-scheduler-prometheus-discovery', { 'component': 'kube-scheduler' }, servicePort.newNamed('https-metrics', 10259, 10259)) + - service.mixin.metadata.withNamespace('kube-system') + - service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) + - service.mixin.spec.withClusterIp('None'), + kubeControllerManagerPrometheusDiscoveryService: service( + 'kube-controller-manager-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-controller-manager' }, + { 'k8s-app': 'kube-controller-manager' }, + [{ name: 'https-metrics', port: 10257, targetPort: 10257 }] + ), + + kubeSchedulerPrometheusDiscoveryService: service( + 'kube-scheduler-prometheus-discovery', + 'kube-system', + { 'k8s-app': 'kube-scheduler' }, + { 'k8s-app': 'kube-scheduler' }, + [{ name: 'https-metrics', port: 10259, targetPort: 10259 }], + ), serviceMonitorKubeScheduler+: { spec+: { diff --git a/jsonnet/kube-prometheus/kube-prometheus-node-ports.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-node-ports.libsonnet index 13901307363277b123474be706422cbf7c9f2a77..b936901111317466acc54e19b73dee337a1771f8 100644 --- a/jsonnet/kube-prometheus/kube-prometheus-node-ports.libsonnet +++ b/jsonnet/kube-prometheus/kube-prometheus-node-ports.libsonnet @@ -1,21 +1,18 @@ -local k = import 'github.com/ksonnet/ksonnet-lib/ksonnet.beta.4/k.libsonnet'; -local service = k.core.v1.service; -local servicePort = k.core.v1.service.mixin.spec.portsType; +local patch(ports) = { + spec+: { + ports+: ports, + type: 'NodePort', + }, +}; { prometheus+: { - service+: - service.mixin.spec.withPorts(servicePort.newNamed('web', 9090, 'web') + servicePort.withNodePort(30900)) + - service.mixin.spec.withType('NodePort'), + service+: patch([{ name: 'web', port: 9090, targetPort: 'web', nodePort: 30900 }]), }, alertmanager+: { - service+: - service.mixin.spec.withPorts(servicePort.newNamed('web', 9093, 'web') + servicePort.withNodePort(30903)) + - service.mixin.spec.withType('NodePort'), + service+: patch([{ name: 'web', port: 9093, targetPort: 'web', nodePort: 30903 }]), }, grafana+: { - service+: - service.mixin.spec.withPorts(servicePort.newNamed('http', 3000, 'http') + servicePort.withNodePort(30902)) + - service.mixin.spec.withType('NodePort'), + service+: patch([{ name: 'http', port: 3000, targetPort: 'http', nodePort: 30902 }]), }, }