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:
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user