feat: add homeassistant to treafik including dns record to reach from outside
This commit is contained in:
@@ -9,5 +9,5 @@ data:
|
||||
# Alleen namen die écht publiek bereikbaar moeten zijn (via router -> cluster).
|
||||
# Interne-only namen (argocd/auth/adguard.labzand.com) bewust NIET hier:
|
||||
# die krijgen geen publiek A-record en resolven alleen intern via AdGuard.
|
||||
DOMAINS: "ns.labzand.com"
|
||||
DOMAINS: "ns.labzand.com, ha.labzand.com"
|
||||
ZONE_ID: "6093605ad5a8db13e9c9d9faad240ca6"
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user