about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-02-23 14:10:11 +0100
committerRobert Günzler <r@gnzler.io>2026-02-23 14:10:11 +0100
commit090a357ef46473e76b0cd0e0e1b013e6080a7360 (patch)
tree1452cc1b553c7e8688c240c7b9730e723c81f0ff
parent7663c3a87167b59c706bd4ec0cf708402aa7fe46 (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.yaml2
-rw-r--r--bundles/go-away/files/traefik.yaml2
-rw-r--r--bundles/jellyfin/files/kube.yaml2
-rw-r--r--bundles/minecraft/files/kube.yaml7
-rw-r--r--bundles/miniflux/files/kube.yaml4
-rw-r--r--bundles/node-exporter/files/kube.yaml2
-rw-r--r--bundles/paperless/files/kube.yaml8
-rw-r--r--bundles/traefik/files/common-middlewares.yaml30
-rw-r--r--bundles/traefik/files/kube.yaml23
-rw-r--r--bundles/traefik/items.py3
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",
     },