feat: lan-only + force-ssl for argocd/authentik/adguard labzand.com ingresses

ipAllowList middleware (192.168.0.0/16) on the websecure routers blocks
external access; separate IngressRoute on web 301-redirects http->https.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <[email protected]>
This commit is contained in:
2026-11-14 16:37:02 +01:00
parent e857cb989c
commit 43fdc020f4
9 changed files with 134 additions and 0 deletions
+4
View File
@@ -85,6 +85,10 @@ kind: Ingress
metadata: metadata:
name: adguard name: adguard
namespace: adguard namespace: adguard
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.middlewares: adguard-lan-only@kubernetescrd
spec: spec:
rules: rules:
- host: adguard.labzand.com - host: adguard.labzand.com
@@ -0,0 +1,19 @@
# HTTP (entrypoint web) -> HTTPS redirect voor adguard.labzand.com.
# services: api@internal is een dummy - de redirect middleware stuurt
# nooit door naar een backend.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: adguard-redirect
namespace: adguard
spec:
entryPoints:
- web
routes:
- match: Host(`adguard.labzand.com`)
kind: Rule
middlewares:
- name: redirect-https
services:
- name: api@internal
kind: TraefikService
+23
View File
@@ -0,0 +1,23 @@
# Middlewares voor adguard.labzand.com (alleen intern):
# - redirect-https: http (web) -> https
# - lan-only: blokkeert verkeer van buiten het LAN op de websecure-router
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-https
namespace: adguard
spec:
redirectScheme:
scheme: https
permanent: true
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: lan-only
namespace: adguard
spec:
ipAllowList:
sourceRange:
- 192.168.0.0/16
- 127.0.0.1/32
+5
View File
@@ -3,7 +3,12 @@ kind: Ingress
metadata: metadata:
name: argocd name: argocd
namespace: argocd namespace: argocd
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.middlewares: argocd-lan-only@kubernetescrd
spec: spec:
ingressClassName: traefik
rules: rules:
- host: argocd.labzand.com - host: argocd.labzand.com
http: http:
@@ -0,0 +1,19 @@
# HTTP (entrypoint web) -> HTTPS redirect voor argocd.labzand.com.
# services: api@internal is een dummy - de redirect middleware stuurt
# nooit door naar een backend.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: argocd-redirect
namespace: argocd
spec:
entryPoints:
- web
routes:
- match: Host(`argocd.labzand.com`)
kind: Rule
middlewares:
- name: redirect-https
services:
- name: api@internal
kind: TraefikService
+23
View File
@@ -0,0 +1,23 @@
# Middlewares voor argocd.labzand.com (alleen intern):
# - redirect-https: http (web) -> https
# - lan-only: blokkeert verkeer van buiten het LAN op de websecure-router
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-https
namespace: argocd
spec:
redirectScheme:
scheme: https
permanent: true
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: lan-only
namespace: argocd
spec:
ipAllowList:
sourceRange:
- 192.168.0.0/16
- 127.0.0.1/32
+1
View File
@@ -6,6 +6,7 @@ metadata:
annotations: annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true" traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.middlewares: authentik-lan-only@kubernetescrd
spec: spec:
ingressClassName: traefik ingressClassName: traefik
rules: rules:
+13
View File
@@ -0,0 +1,13 @@
# Middleware voor auth.labzand.com (alleen intern): blokkeert verkeer
# van buiten het LAN op de websecure-router.
# (redirect-https staat in redirect.yaml)
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: lan-only
namespace: authentik
spec:
ipAllowList:
sourceRange:
- 192.168.0.0/16
- 127.0.0.1/32
+27
View File
@@ -0,0 +1,27 @@
# HTTP (entrypoint web) -> HTTPS redirect voor auth.labzand.com.
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-https
namespace: authentik
spec:
redirectScheme:
scheme: https
permanent: true
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: auth-redirect
namespace: authentik
spec:
entryPoints:
- web
routes:
- match: Host(`auth.labzand.com`)
kind: Rule
middlewares:
- name: redirect-https
services:
- name: api@internal
kind: TraefikService