homelab/manifests/network/traefik-dashboard-ingress.yaml
Nik Afiq 83f46c9748 feat(gitea): add backup CronJob with RBAC and NFS support
feat(gitea): create PersistentVolume and PersistentVolumeClaim for Gitea

feat(gitea): add script to create Gitea runner registration token secret

feat(gitea): deploy Gitea Actions runner with Docker socket access

feat(media): deploy JDownloader with Ingress configuration

feat(media): set up Jellyfin media server with NFS and Ingress

feat(media): configure qBittorrent deployment with Ingress

feat(monitoring): add Grafana Loki datasource ConfigMap

feat(monitoring): create Grafana admin credentials secret

feat(monitoring): define PersistentVolumes for monitoring stack

feat(network): implement DDNS CronJob for Porkbun DNS updates

feat(network): create secret for Porkbun DDNS API credentials

feat(network): set up Glances service and Ingress for Debian node

fix(network): patch Pi-hole DNS services with external IPs

feat(network): configure Traefik dashboard Ingress with Authentik auth

feat(network): set up Watch Party service and Ingress for Mac Mini

refactor(values): update Helm values files for various services
2026-03-12 21:56:32 +09:00

69 lines
1.8 KiB
YAML

# Apply: kubectl apply -f manifests/network/traefik-dashboard-ingress.yaml
# Delete: kubectl delete -f manifests/network/traefik-dashboard-ingress.yaml
# Description: Traefik dashboard IngressRoute with Authentik auth, root redirect, and TLS certificate.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard
namespace: traefik
spec:
entryPoints:
- websecure
routes:
- match: Host(`traefik.home.arpa`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: authentik-proxy-outpost
namespace: authentik
port: 9000
- match: Host(`traefik.home.arpa`) && Path(`/`)
kind: Rule
middlewares:
- name: redirect-to-dashboard
namespace: traefik
services:
- name: api@internal
kind: TraefikService
- match: Host(`traefik.home.arpa`) && PathPrefix(`/dashboard`)
kind: Rule
middlewares:
- name: authentik-auth
namespace: authentik
services:
- name: api@internal
kind: TraefikService
- match: Host(`traefik.home.arpa`) && PathPrefix(`/api`)
kind: Rule
middlewares:
- name: authentik-auth
namespace: authentik
services:
- name: api@internal
kind: TraefikService
tls:
secretName: traefik-dashboard-tls
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-to-dashboard
namespace: traefik
spec:
redirectRegex:
regex: ^https://traefik.home.arpa/$
replacement: https://traefik.home.arpa/dashboard/
permanent: true
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: traefik-dashboard-tls
namespace: traefik
spec:
secretName: traefik-dashboard-tls
issuerRef:
name: internal-ca
kind: ClusterIssuer
dnsNames:
- traefik.home.arpa