diff --git a/kubernetes/apps/external-dns/kustomization.yaml b/kubernetes/apps/external-dns/kustomization.yaml index 8e3a1ec0..3e16e232 100644 --- a/kubernetes/apps/external-dns/kustomization.yaml +++ b/kubernetes/apps/external-dns/kustomization.yaml @@ -3,3 +3,4 @@ kind: Kustomization resources: - externalsecret.yaml - helmrelease.yaml + - networkpolicy.yaml diff --git a/kubernetes/apps/external-dns/networkpolicy.yaml b/kubernetes/apps/external-dns/networkpolicy.yaml new file mode 100644 index 00000000..4c258cee --- /dev/null +++ b/kubernetes/apps/external-dns/networkpolicy.yaml @@ -0,0 +1,22 @@ +# The apps namespace is default-deny-ingress, so the ServiceMonitor added in +# monitoring-rules/external-dns-servicemonitor.yaml scraped into a timeout. +# The selector matches both releases — the Cloudflare one deployed here and +# external-dns-unifi from infrastructure/ — since they share the chart's +# app.kubernetes.io/name and land in the same namespace. +apiVersion: cilium.io/v2 +kind: CiliumNetworkPolicy +metadata: + name: external-dns-allow-metrics-scrape + namespace: apps +spec: + endpointSelector: + matchLabels: + app.kubernetes.io/name: external-dns + ingress: + - fromEndpoints: + - matchLabels: + k8s:io.kubernetes.pod.namespace: monitoring + toPorts: + - ports: + - port: "7979" + protocol: TCP