diff options
| author | Robert Günzler <r@gnzler.io> | 2026-02-23 14:10:11 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2026-02-23 14:10:11 +0100 |
| commit | 090a357ef46473e76b0cd0e0e1b013e6080a7360 (patch) | |
| tree | 1452cc1b553c7e8688c240c7b9730e723c81f0ff | |
| parent | 7663c3a87167b59c706bd4ec0cf708402aa7fe46 (diff) | |
refactor traefik middlewares into separate files
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '')
| -rw-r--r-- | bundles/authelia/files/kube.yaml | 2 | ||||
| -rw-r--r-- | bundles/go-away/files/traefik.yaml | 2 | ||||
| -rw-r--r-- | bundles/jellyfin/files/kube.yaml | 2 | ||||
| -rw-r--r-- | bundles/minecraft/files/kube.yaml | 7 | ||||
| -rw-r--r-- | bundles/miniflux/files/kube.yaml | 4 | ||||
| -rw-r--r-- | bundles/node-exporter/files/kube.yaml | 2 | ||||
| -rw-r--r-- | bundles/paperless/files/kube.yaml | 8 | ||||
| -rw-r--r-- | bundles/traefik/files/common-middlewares.yaml | 30 | ||||
| -rw-r--r-- | bundles/traefik/files/kube.yaml | 23 | ||||
| -rw-r--r-- | bundles/traefik/items.py | 3 |
10 files changed, 44 insertions, 39 deletions
diff --git a/bundles/authelia/files/kube.yaml b/bundles/authelia/files/kube.yaml index 78ad0a3..7afa74a 100644 --- a/bundles/authelia/files/kube.yaml +++ b/bundles/authelia/files/kube.yaml @@ -24,7 +24,7 @@ metadata: traefik.http.routers.authelia-metrics.entrypoints: metrics traefik.http.routers.authelia-metrics.rule: Path(`/metrics/authelia`) traefik.http.routers.authelia-metrics.service: authelia-metrics - traefik.http.routers.authelia-metrics.middlewares: replacepath-metrics + traefik.http.routers.authelia-metrics.middlewares: replacepath-metrics@file traefik.http.services.authelia-metrics.loadbalancer.server.port: 9959 spec: restartPolicy: Never diff --git a/bundles/go-away/files/traefik.yaml b/bundles/go-away/files/traefik.yaml index a8fcb9d..aa1b923 100644 --- a/bundles/go-away/files/traefik.yaml +++ b/bundles/go-away/files/traefik.yaml @@ -37,4 +37,4 @@ http: - metrics service: go-away-metrics middlewares: - - replacepath-metrics@docker + - replacepath-metrics@file diff --git a/bundles/jellyfin/files/kube.yaml b/bundles/jellyfin/files/kube.yaml index f0f1668..698a369 100644 --- a/bundles/jellyfin/files/kube.yaml +++ b/bundles/jellyfin/files/kube.yaml @@ -20,7 +20,7 @@ metadata: # metrics traefik.http.routers.jellyfin-metrics.entrypoints: metrics traefik.http.routers.jellyfin-metrics.rule: Path(`/metrics/jellyfin`) - traefik.http.routers.jellyfin-metrics.middlewares: replacepath-metrics + traefik.http.routers.jellyfin-metrics.middlewares: replacepath-metrics@file spec: # NOTE: required to make discovery work # jellyfin clients use udp broadcast messages on port 7359 diff --git a/bundles/minecraft/files/kube.yaml b/bundles/minecraft/files/kube.yaml index 8e6bb93..e7585d3 100644 --- a/bundles/minecraft/files/kube.yaml +++ b/bundles/minecraft/files/kube.yaml @@ -11,10 +11,6 @@ metadata: traefik.http.routers.minecraft.rule: Host(`mc.gzr.im`) traefik.http.routers.minecraft.service: jellyfin traefik.http.services.minecraft.loadbalancer.server.port: 8096 - # # metrics - # traefik.http.routers.jellyfin-metrics.entrypoints: metrics - # traefik.http.routers.jellyfin-metrics.rule: Path(`/metrics/jellyfin`) - # traefik.http.routers.jellyfin-metrics.middlewares: replacepath-metrics spec: restartPolicy: Never dnsPolicy: Default @@ -22,9 +18,6 @@ spec: containers: - name: purpur image: docker.io/josxha/minecraft-purpur:1.21.8 - # envFrom: - # - configMapRef: - # name: jellyfin ports: - containerPort: 25565 protocol: TCP diff --git a/bundles/miniflux/files/kube.yaml b/bundles/miniflux/files/kube.yaml index 01fc091..e8b371a 100644 --- a/bundles/miniflux/files/kube.yaml +++ b/bundles/miniflux/files/kube.yaml @@ -24,12 +24,12 @@ metadata: traefik.http.routers.miniflux.entrypoints: http,https traefik.http.routers.miniflux.rule: Host(`rss.gzr.im`) traefik.http.routers.miniflux.service: miniflux - traefik.http.routers.miniflux.middlewares: authelia@docker + traefik.http.routers.miniflux.middlewares: authelia@file traefik.http.services.miniflux.loadbalancer.server.port: 8080 # metrics traefik.http.routers.miniflux-metrics.entrypoints: metrics traefik.http.routers.miniflux-metrics.rule: Path(`/metrics/miniflux`) - traefik.http.routers.miniflux-metrics.middlewares: replacepath-metrics + traefik.http.routers.miniflux-metrics.middlewares: replacepath-metrics@file spec: # NOTE: we need to compensate for the lack of healthcheck-based retries restartPolicy: Always diff --git a/bundles/node-exporter/files/kube.yaml b/bundles/node-exporter/files/kube.yaml index 3e7678b..df10043 100644 --- a/bundles/node-exporter/files/kube.yaml +++ b/bundles/node-exporter/files/kube.yaml @@ -8,7 +8,7 @@ metadata: # metrics traefik.http.routers.node-exporter-metrics.entrypoints: metrics traefik.http.routers.node-exporter-metrics.rule: Path(`/metrics/node-exporter`) - traefik.http.routers.node-exporter-metrics.middlewares: replacepath-metrics + traefik.http.routers.node-exporter-metrics.middlewares: replacepath-metrics@file traefik.http.routers.node-exporter-metrics.service: node-exporter spec: restartPolicy: Never diff --git a/bundles/paperless/files/kube.yaml b/bundles/paperless/files/kube.yaml index 8d48fe3..fc51313 100644 --- a/bundles/paperless/files/kube.yaml +++ b/bundles/paperless/files/kube.yaml @@ -27,9 +27,11 @@ metadata: traefik.http.routers.paperless.rule: Host(`paper.gzr.im`) traefik.http.routers.paperless.service: paperless traefik.http.services.paperless.loadbalancer.server.port: 8000 - # prometheus.scrape.enable: false - # prometheus.scrape.port: 8000 - # prometheus.label.job: paperless + # metrics + # traefik.http.routers.paperless-metrics.entrypoints: metrics + # traefik.http.routers.paperless-metrics.rule: Path(`/metrics/paperless`) + # traefik.http.routers.paperless-metrics.middlewares: replacepath-metrics@file + # traefik.http.services.paperless-metrics.loadbalancer.server.port: 5555 spec: restartPolicy: Always dnsPolicy: Default diff --git a/bundles/traefik/files/common-middlewares.yaml b/bundles/traefik/files/common-middlewares.yaml new file mode 100644 index 0000000..5f2cb2e --- /dev/null +++ b/bundles/traefik/files/common-middlewares.yaml @@ -0,0 +1,30 @@ +http: + middlewares: + + # metrics + replacepath-bare: + replacepath: + path: / + replacepath-metrics: + replacepath: + path: /metrics + + # authelia + authelia: + forwardAuth: + trustForwardHeader: true + authResponseHeaders: Remote-User,Remote-Groups,Remote-Email,Remote-Name +% if node.name == "inazuma": + address: http://authelia:9091/api/authz/forward-auth +% elif node.name == "shimakaze": + address: http://inazuma:9091/api/authz/forward-auth +% endif + +% if node.name == "inazuma--TODO": + # tsauth + tsauth: + forwardAuth: + trustForwardHeader: true + authResponseHeaders: ^Tailscale- + address: http://localhost:3000 +% endif diff --git a/bundles/traefik/files/kube.yaml b/bundles/traefik/files/kube.yaml index 2849091..87202fc 100644 --- a/bundles/traefik/files/kube.yaml +++ b/bundles/traefik/files/kube.yaml @@ -4,29 +4,6 @@ kind: Pod metadata: name: traefik labels: - traefik.enable: true - traefik.http.routers.traefik-metrics.entrypoints: metrics - traefik.http.routers.traefik-metrics.rule: Path(`/metrics/traefik`) - traefik.http.routers.traefik-metrics.middlewares: replacepath-bare - traefik.http.routers.traefik-metrics.service: prometheus@internal - # common middleware - ## metrics - traefik.http.middlewares.replacepath-bare.replacepath.path: / - traefik.http.middlewares.replacepath-metrics.replacepath.path: /metrics - ## authelia - traefik.http.middlewares.authelia.forwardAuth.trustForwardHeader: true - traefik.http.middlewares.authelia.forwardAuth.authResponseHeaders: Remote-User,Remote-Groups,Remote-Email,Remote-Name -% if node.name == "inazuma": - traefik.http.middlewares.authelia.forwardAuth.address: http://authelia:9091/api/authz/forward-auth -% elif node.name == "shimakaze": - traefik.http.middlewares.authelia.forwardAuth.address: http://inazuma:9091/api/authz/forward-auth -% endif -% if node.name == "inazuma--TODO": - ## tsauth - traefik.http.middlewares.tsauth.forwardAuth.trustForwardHeader: true - traefik.http.middlewares.tsauth.forwardAuth.authResponseHeaders: ^Tailscale- - traefik.http.middlewares.tsauth.forwardAuth.address: http://localhost:3000 -% endif spec: restartPolicy: Never dnsPolicy: Default diff --git a/bundles/traefik/items.py b/bundles/traefik/items.py index 8b4eec7..ecb3d66 100644 --- a/bundles/traefik/items.py +++ b/bundles/traefik/items.py @@ -10,6 +10,9 @@ files = { "triggers": {"svc_s6rc:traefik:restart"}, }, "/etc/traefik/tls-redirect.yaml": {}, + "/etc/traefik/common-middlewares.yaml": { + "content_type": "mako", + }, "/etc/logrotate.d/traefik": { "source": "logrotate.conf", }, |