diff --git a/manifests/prometheus/prometheus-k8s-service-coredns-metrics.yaml b/manifests/prometheus/prometheus-k8s-service-coredns-metrics.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cd90a55e614a0c39fa5a59a96f91adc93ef121c6
--- /dev/null
+++ b/manifests/prometheus/prometheus-k8s-service-coredns-metrics.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: coredns-prometheus-discovery
+  namespace: kube-system
+  labels:
+    k8s-app: coredns
+    component: metrics
+spec:
+  ports:
+    - name: http-metrics
+      port: 9153
+      protocol: TCP
+      targetPort: 9153
+  selector:
+    k8s-app: coredns
+  type: ClusterIP
+  clusterIP: None
diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-coredns.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-coredns.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..362ac89959cf8e2be1835e6b08ef20feeca01b7e
--- /dev/null
+++ b/manifests/prometheus/prometheus-k8s-service-monitor-coredns.yaml
@@ -0,0 +1,19 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  labels:
+    k8s-app: coredns
+  name: coredns
+spec:
+  jobLabel: k8s-app
+  selector:
+    matchLabels:
+      k8s-app: coredns
+      component: metrics
+  namespaceSelector:
+    matchNames:
+      - kube-system
+  endpoints:
+  - port: http-metrics
+    interval: 15s
+    bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token