feat: add homeassistant to treafik including dns record to reach from outside

This commit is contained in:
2026-11-14 21:43:45 +01:00
parent 9bbdf7d5d6
commit 8b8784d0f2
6 changed files with 106 additions and 1 deletions
+14
View File
@@ -0,0 +1,14 @@
# Certificaat voor ns.labzand.com via Cloudflare DNS-01.
# Vereist: ClusterIssuer 'cloudflare-dns' (infrastructure/cert-manager/cloudflare-issuer.yaml)
# en een secret 'cloudflare-api-token' in namespace cert-manager.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ha-labzand
namespace: external
spec:
secretName: ha-labzand-tls
dnsNames: ["ha.labzand.com"]
issuerRef:
name: cloudflare-dns
kind: ClusterIssuer
@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: homeassistant
namespace: external
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
ingressClassName: traefik
rules:
- host: ha.labzand.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: ha-external
port:
number: 8123
tls:
- hosts:
- ha.labzand.com
secretName: ha-labzand-tls
@@ -0,0 +1,21 @@
# HTTP (entrypoint web) -> HTTPS redirect voor ns.labzand.com.
# De Ingress zelf heeft een tls-sectie, waardoor Traefik die router alleen
# op websecure matcht; daarom hier een aparte router op web.
# services: api@internal is een dummy - de redirect middleware stuurt
# nooit door naar een backend.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: ha-redirect
namespace: external
spec:
entryPoints:
- web
routes:
- match: Host(`ha.labzand.com`)
kind: Rule
middlewares:
- name: redirect-https
services:
- name: api@internal
kind: TraefikService
@@ -0,0 +1,27 @@
# Service zonder selector: Kubernetes maakt zelf geen Endpoints aan.
# Het Endpoints-object hieronder levert het externe adres (buiten het cluster).
apiVersion: v1
kind: Service
metadata:
name: ha-external
namespace: external
spec:
type: ClusterIP
ports:
- name: http
port: 8123
targetPort: 8123
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
name: ha-external
namespace: external
subsets:
- addresses:
- ip: 192.168.2.146
ports:
- name: http
port: 8123
protocol: TCP