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
69 lines
1.8 KiB
YAML
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
|