Files
kubemirror/examples/traefik-middleware.yaml
T
2025-12-25 22:10:57 +00:00

65 lines
1.6 KiB
YAML

---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: compression
namespace: namespace-2
annotations:
# Mirror this Traefik middleware to namespace-4 and namespace-5
kubemirror.raczylo.com/sync: "true"
kubemirror.raczylo.com/target-namespaces: "namespace-4,namespace-5"
labels:
# Required: enables server-side filtering
kubemirror.raczylo.com/enabled: "true"
app: kubemirror-example
resource-type: traefik-middleware
spec:
compress:
excludedContentTypes:
- text/event-stream
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: rate-limit
namespace: namespace-2
annotations:
# Mirror to all namespaces for consistent rate limiting
kubemirror.raczylo.com/sync: "true"
kubemirror.raczylo.com/target-namespaces: "all"
labels:
# Required: enables server-side filtering
kubemirror.raczylo.com/enabled: "true"
app: kubemirror-example
resource-type: traefik-middleware
spec:
rateLimit:
average: 100
burst: 50
period: 1m
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: headers
namespace: namespace-2
annotations:
# Mirror only to namespace-3
kubemirror.raczylo.com/sync: "true"
kubemirror.raczylo.com/target-namespaces: "namespace-3"
labels:
# Required: enables server-side filtering
kubemirror.raczylo.com/enabled: "true"
app: kubemirror-example
resource-type: traefik-middleware
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Frame-Options: "DENY"
X-Content-Type-Options: "nosniff"
customResponseHeaders:
X-Custom-Response-Header: "kubemirror-example"