diff --git a/jsonnet/kube-prometheus/components/blackbox-exporter.libsonnet b/jsonnet/kube-prometheus/components/blackbox-exporter.libsonnet index 162bd9a631028d20054aad1fac49127d07b2dc01..1b3c7653e2228047125e057c1e4d201150cb6a05 100644 --- a/jsonnet/kube-prometheus/components/blackbox-exporter.libsonnet +++ b/jsonnet/kube-prometheus/components/blackbox-exporter.libsonnet @@ -250,6 +250,30 @@ function(params) { }, }, + networkPolicy: { + apiVersion: 'networking.k8s.io/v1', + kind: 'NetworkPolicy', + metadata: bb.service.metadata, + spec: { + podSelector: { + matchLabels: bb._config.selectorLabels, + }, + ingress: [{ + from: [{ + podSelector: { + matchLabels: { + 'app.kubernetes.io/name': 'prometheus', + }, + }, + }], + ports: std.map(function(o) { + port: o.port, + protocol: 'TCP', + }, bb.service.spec.ports), + }], + }, + }, + service: { apiVersion: 'v1', kind: 'Service', diff --git a/jsonnet/kube-prometheus/components/kube-state-metrics.libsonnet b/jsonnet/kube-prometheus/components/kube-state-metrics.libsonnet index 5162141e07917c621eaea182572e64c9a093577f..4d7fe2d318adc2ff7dd051a0b93594f4278f5bfa 100644 --- a/jsonnet/kube-prometheus/components/kube-state-metrics.libsonnet +++ b/jsonnet/kube-prometheus/components/kube-state-metrics.libsonnet @@ -124,6 +124,30 @@ function(params) (import 'github.com/kubernetes/kube-state-metrics/jsonnet/kube- image: ksm._config.kubeRbacProxyImage, }), + networkPolicy: { + apiVersion: 'networking.k8s.io/v1', + kind: 'NetworkPolicy', + metadata: ksm.service.metadata, + spec: { + podSelector: { + matchLabels: ksm._config.selectorLabels, + }, + ingress: [{ + from: [{ + podSelector: { + matchLabels: { + 'app.kubernetes.io/name': 'prometheus', + }, + }, + }], + ports: std.map(function(o) { + port: o.port, + protocol: 'TCP', + }, ksm.service.spec.ports), + }], + }, + }, + deployment+: { spec+: { template+: { diff --git a/jsonnet/kube-prometheus/components/node-exporter.libsonnet b/jsonnet/kube-prometheus/components/node-exporter.libsonnet index 2d1deb960685b81531c887a1389462a240cfd778..c4276b0bfeb97fb307251c96c445565ef99a3d83 100644 --- a/jsonnet/kube-prometheus/components/node-exporter.libsonnet +++ b/jsonnet/kube-prometheus/components/node-exporter.libsonnet @@ -160,6 +160,30 @@ function(params) { }, }, + networkPolicy: { + apiVersion: 'networking.k8s.io/v1', + kind: 'NetworkPolicy', + metadata: ne.service.metadata, + spec: { + podSelector: { + matchLabels: ne._config.selectorLabels, + }, + ingress: [{ + from: [{ + podSelector: { + matchLabels: { + 'app.kubernetes.io/name': 'prometheus', + }, + }, + }], + ports: std.map(function(o) { + port: o.port, + protocol: 'TCP', + }, ne.service.spec.ports), + }], + }, + }, + daemonset: local nodeExporter = { name: ne._config.name, diff --git a/jsonnet/kube-prometheus/components/prometheus-adapter.libsonnet b/jsonnet/kube-prometheus/components/prometheus-adapter.libsonnet index 1ac3aced0ca4ffee8818e48ac14c0da000392b5d..cbeeb06a97ea9d54156020f7d2f1c5700badd670 100644 --- a/jsonnet/kube-prometheus/components/prometheus-adapter.libsonnet +++ b/jsonnet/kube-prometheus/components/prometheus-adapter.libsonnet @@ -206,6 +206,21 @@ function(params) { }, }, + networkPolicy: { + apiVersion: 'networking.k8s.io/v1', + kind: 'NetworkPolicy', + metadata: pa.service.metadata, + spec: { + podSelector: { + matchLabels: pa._config.selectorLabels, + }, + policyTypes: ['Egress', 'Ingress'], + egress: [{}], + // Prometheus-adapter needs ingress allowed so HPAs can request metrics from it. + ingress: [{}], + }, + }, + deployment: local c = { name: pa._config.name, diff --git a/manifests/prometheusAdapter-networkPolicy.yaml b/manifests/prometheusAdapter-networkPolicy.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d4636dff3f00f155bbc6beec30ce9cdddc1aea71 --- /dev/null +++ b/manifests/prometheusAdapter-networkPolicy.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/component: metrics-adapter + app.kubernetes.io/name: prometheus-adapter + app.kubernetes.io/part-of: kube-prometheus + app.kubernetes.io/version: 0.9.1 + name: prometheus-adapter + namespace: monitoring +spec: + egress: + - {} + ingress: + - {} + podSelector: + matchLabels: + app.kubernetes.io/component: metrics-adapter + app.kubernetes.io/name: prometheus-adapter + app.kubernetes.io/part-of: kube-prometheus + policyTypes: + - Egress + - Ingress