85 lines
2.0 KiB
YAML
85 lines
2.0 KiB
YAML
---
|
|
# Internal-only middleware
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: internal-only
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
ipWhiteList:
|
|
# Restrict to local private network ranges
|
|
sourceRange:
|
|
- 127.0.0.1/32 # localhost
|
|
- 10.0.0.0/8 # Private network
|
|
- 172.16.0.0/12 # Private network
|
|
- 192.168.0.0/16 # Private network
|
|
|
|
---
|
|
# HTTPS redirect middleware
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: dashboard-redirect-scheme
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
redirectScheme:
|
|
scheme: https
|
|
permanent: true
|
|
|
|
---
|
|
# IngressRoute for Dashboard
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: kubernetes-dashboard-https
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- match: Host(`dashboard.internal.${DOMAIN}`)
|
|
kind: Rule
|
|
middlewares:
|
|
- name: internal-only
|
|
namespace: kubernetes-dashboard
|
|
services:
|
|
- name: kubernetes-dashboard
|
|
port: 443
|
|
serversTransport: dashboard-transport
|
|
tls:
|
|
secretName: wildcard-internal-wild-cloud-tls
|
|
|
|
---
|
|
# HTTP to HTTPS redirect.
|
|
# FIXME: Is this needed?
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: kubernetes-dashboard-http
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
entryPoints:
|
|
- web
|
|
routes:
|
|
- match: Host(`dashboard.internal.${DOMAIN}`)
|
|
kind: Rule
|
|
middlewares:
|
|
- name: dashboard-redirect-scheme
|
|
namespace: kubernetes-dashboard
|
|
services:
|
|
- name: kubernetes-dashboard
|
|
port: 443
|
|
serversTransport: dashboard-transport
|
|
|
|
---
|
|
# ServersTransport for HTTPS backend with skip verify.
|
|
# FIXME: Is this needed?
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: ServersTransport
|
|
metadata:
|
|
name: dashboard-transport
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
insecureSkipVerify: true
|
|
serverName: dashboard.internal.${DOMAIN}
|