diff --git a/apps/k8s01/dns/dns.yaml b/apps/k8s01/dns/dns.yaml
index 0a959b1a1b40641b44c136d4c0efdafddbf62e02..f15483a9078bea67732d2803d56a3a1493d8a944 100644
--- a/apps/k8s01/dns/dns.yaml
+++ b/apps/k8s01/dns/dns.yaml
@@ -3,14 +3,15 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: blocky-config
-  namespace: dns
+  labels:
+    app: resolver
 data:
   config.yaml: |
     ports:
       dns: 53
       tls: 853
       https: 443
-      http: 4000
+      http: 80
     upstreams:
       groups:
         default:
@@ -65,10 +66,16 @@ spec:
           ports:
             - containerPort: 53
               protocol: TCP
+              name: dns53tcp
             - containerPort: 53
               protocol: UDP
+              name: dns53udp
             - containerPort: 853
               protocol: TCP
+              name: dot
+            - containerPort: 80
+              protocol: TCP
+              name: http
           resources:
             requests:
               cpu: 100m
@@ -110,6 +117,8 @@ apiVersion: v1
 kind: Service
 metadata:
   name: dns53-tcp
+  labels:
+    app: resolver
   annotations:
     metallb.universe.tf/allow-shared-ip: "dns"
 spec:
@@ -126,6 +135,8 @@ apiVersion: v1
 kind: Service
 metadata:
   name: dns53-udp
+  labels:
+    app: resolver
   annotations:
     metallb.universe.tf/allow-shared-ip: "dns"
 spec:
@@ -142,6 +153,8 @@ apiVersion: v1
 kind: Service
 metadata:
   name: dns-over-tls
+  labels:
+    app: resolver
   annotations:
     metallb.universe.tf/allow-shared-ip: "dns"
 spec:
@@ -154,6 +167,22 @@ spec:
       port: 853
       targetPort: 853
 ---
+apiVersion: v1
+kind: Service
+metadata:
+  name: dns-over-http
+  labels:
+    app: resolver
+spec:
+  type: ClusterIP
+  selector:
+    app: resolver
+  ports:
+    - name: dns-over-http
+      protocol: TCP
+      port: 80
+      targetPort: 80
+---
 apiVersion: policy/v1
 kind: PodDisruptionBudget
 metadata:
diff --git a/apps/k8s01/dns/kustomization.yaml b/apps/k8s01/dns/kustomization.yaml
index a98025ae1eb4d477c511ef3d55dee260f198f048..c576d92cd9c87540c1274f1cb5c29e2fbfaa4095 100644
--- a/apps/k8s01/dns/kustomization.yaml
+++ b/apps/k8s01/dns/kustomization.yaml
@@ -6,5 +6,6 @@ resources:
   - certificate.yaml
   - dns.yaml
   - networkpolicy.yaml
+  - servicemonitor.yaml
   - ../../../shared/networkpolicies/allow-from-same-namespace.yaml
   - ../../../shared/resourcequotas/default.yaml
diff --git a/apps/k8s01/dns/servicemonitor.yaml b/apps/k8s01/dns/servicemonitor.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..530defd100fdc20f4fa0badc04e9740127ff227c
--- /dev/null
+++ b/apps/k8s01/dns/servicemonitor.yaml
@@ -0,0 +1,14 @@
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: resolver
+  labels:
+    app: resolver
+spec:
+  selector:
+    matchLabels:
+      app: resolver
+  endpoints:
+    - port: http
+      path: /metrics