refactor dns endpoint usage to annotations

This commit is contained in:
2025-12-17 05:50:08 -05:00
parent f66dd41bf5
commit eeef0657ed
54 changed files with 35 additions and 532 deletions

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: actual.michaelthomson.dev
namespace: actual
spec:
endpoints:
- dnsName: actual.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: actual
namespace: actual
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: authentik.michaelthomson.dev
namespace: authentik
spec:
endpoints:
- dnsName: authentik.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -25,6 +25,8 @@ spec:
enabled: true
ingressClassName: traefik
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: baikal.michaelthomson.dev
namespace: baikal
spec:
endpoints:
- dnsName: baikal.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: baikal
namespace: baikal
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: booklore.michaelthomson.dev
namespace: booklore
spec:
endpoints:
- dnsName: booklore.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "false"

View File

@@ -24,6 +24,8 @@ spec:
ingress:
enabled: true
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
hosts:

View File

@@ -1,10 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: calibre-web-config
namespace: calibre-web
data:
PUID: "1000"
PGID: "1000"
TZ: "America/Toronto"
DOCKER_MODS: "linuxserver/mods:universal-calibre"

View File

@@ -1,38 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: calibre-web
namespace: calibre-web
spec:
selector:
matchLabels:
app: calibre-web
template:
metadata:
labels:
app: calibre-web
spec:
containers:
- name: calibre-web
image: lscr.io/linuxserver/calibre-web:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: calibre-web-config
optional: false
ports:
- containerPort: 8083
name: http
protocol: TCP
volumeMounts:
- name: config
mountPath: /config
- mountPath: /books
name: data
volumes:
- name: config
persistentVolumeClaim:
claimName: calibre-web-config
- name: data
persistentVolumeClaim:
claimName: calibre-web-data

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: calibre.michaelthomson.dev
namespace: calibre-web
spec:
endpoints:
- dnsName: calibre.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,24 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: calibre-web
namespace: calibre-web
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
rules:
- host: calibre.michaelthomson.dev
http:
paths:
- pathType: ImplementationSpecific
path: /
backend:
service:
name: calibre-web
port:
name: http
tls:
- hosts:
- calibre.michaelthomson.dev
secretName: letsencrypt-wildcard-cert-michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: calibre-web-config
namespace: calibre-web
spec:
resources:
requests:
storage: 4Gi
storageClassName: longhorn
accessModes:
- ReadWriteOnce

View File

@@ -1,12 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: calibre-web-data
namespace: calibre-web
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 8Gi

View File

@@ -1,12 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: calibre-web
namespace: calibre-web
spec:
selector:
app: calibre-web
ports:
- port: 80
targetPort: http
name: http

View File

@@ -1,16 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: gitea.michaelthomson.dev
namespace: gitea
spec:
endpoints:
- dnsName: gitea.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "false"

View File

@@ -31,6 +31,8 @@ spec:
enabled: true
className: traefik
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
hosts:

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: ha.michaelthomson.dev
namespace: homeassistant
spec:
endpoints:
- dnsName: ha.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: immich.michaelthomson.dev
namespace: immich
spec:
endpoints:
- dnsName: immich.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "false"

View File

@@ -63,6 +63,8 @@ spec:
main:
enabled: true
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
hosts:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: karakeep.michaelthomson.dev
namespace: karakeep
spec:
endpoints:
- dnsName: karakeep.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: karakeep-web-ingress
namespace: karakeep
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: grafana.michaelthomson.dev
namespace: kube-prometheus-stack
spec:
endpoints:
- dnsName: grafana.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: prometheus.michaelthomson.dev
namespace: kube-prometheus-stack
spec:
endpoints:
- dnsName: prometheus.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: bazarr.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: bazarr.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: jellyfin.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: jellyfin.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: jellyfin
namespace: media
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: jellyseerr.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: jellyseerr.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: jellyseerr
namespace: media
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: prowlarr.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: prowlarr.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: radarr.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: radarr.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: sabnzbd.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: sabnzbd.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: sonarr.michaelthomson.dev
namespace: media
spec:
endpoints:
- dnsName: sonarr.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: michaelthomson.dev
namespace: michaelthomson
spec:
endpoints:
- dnsName: michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: michaelthomson.dev
namespace: michaelthomson
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: mc.michaelthomson.dev
namespace: minecraft
spec:
endpoints:
- dnsName: mc.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "false"

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: collabora.michaelthomson.dev
namespace: nextcloud
spec:
endpoints:
- dnsName: collabora.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: nextcloud.michaelthomson.dev
namespace: nextcloud
spec:
endpoints:
- dnsName: nextcloud.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -21,6 +21,8 @@ spec:
enabled: true
className: traefik
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
tls:
@@ -149,6 +151,8 @@ spec:
ingress:
enabled: true
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
hosts:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: ntfy.michaelthomson.dev
namespace: ntfy
spec:
endpoints:
- dnsName: ntfy.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: ntfy
namespace: ntfy
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: pihole.michaelthomson.dev
namespace: pihole
spec:
endpoints:
- dnsName: pihole.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: pdf.michaelthomson.dev
namespace: stirling-pdf
spec:
endpoints:
- dnsName: pdf.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: syncthing.michaelthomson.dev
namespace: syncthing
spec:
endpoints:
- dnsName: syncthing.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -4,6 +4,8 @@ metadata:
name: syncthing
namespace: syncthing
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: kuma.michaelthomson.dev
namespace: uptime-kuma
spec:
endpoints:
- dnsName: kuma.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -4,6 +4,8 @@ metadata:
name: uptime-kuma
namespace: uptime-kuma
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: vaultwarden.michaelthomson.dev
namespace: vaultwarden
spec:
endpoints:
- dnsName: vaultwarden.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "true"

View File

@@ -43,6 +43,8 @@ spec:
enabled: true
class: "traefik"
additionalAnnotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
labels: {}

View File

@@ -1,15 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: wireguard.michaelthomson.dev
namespace: wg-easy
spec:
endpoints:
- dnsName: wireguard.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- michaelthomson.ddns.net
providerSpecific:
- name: external-dns.alpha.kubernetes.io/cloudflare-proxied
value: "false"

View File

@@ -4,6 +4,8 @@ metadata:
name: wg-easy
namespace: wg-easy
annotations:
external-dns.alpha.kubernetes.io/target: michaelthomson.ddns.net
external-dns.alpha.kubernetes.io/cloudflare-proxied: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: longhorn.michaelthomson.dev
namespace: longhorn-system
spec:
endpoints:
- dnsName: longhorn.michaelthomson.dev
recordTTL: 180
recordType: CNAME
targets:
- server.michaelthomson.dev

View File

@@ -1,12 +0,0 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: server.michaelthomson.dev
namespace: traefik
spec:
endpoints:
- dnsName: server.michaelthomson.dev
recordTTL: 180
recordType: A
targets:
- 192.168.18.200

View File

@@ -16,6 +16,7 @@ spec:
values:
sources:
- crd
- ingress
provider:
name: cloudflare
env: