hanzoai/ingress only parses ingress.kubernetes.io/* (annotations.go:13); traefik.ingress.kubernetes.io/router.middlewares was silently ignored, so the api-zoo-exchange / lux-exchange / zoo-exchange rate-limit middlewares (created 15d ago) were never bound — those exchange APIs had ZERO rate limiting. Verified attached via deterministic avg1/burst1 test (429 on req 6). Effective limit is ~6x configured (per-pod x 6 ingress replicas).
31 lines
1.1 KiB
YAML
31 lines
1.1 KiB
YAML
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: zoo-exchange
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt
|
|
# hanzoai/ingress parses ingress.kubernetes.io/ (traefik.ingress.kubernetes.io/ is ignored).
|
|
ingress.kubernetes.io/router.middlewares: zoo-zoo-exchange-rate-limit@kubernetescrd
|
|
spec:
|
|
ingressClassName: ingress
|
|
tls:
|
|
- hosts: [zoo.exchange, www.zoo.exchange, exchange.zoo.network, trade.zoo.exchange]
|
|
secretName: zoo-exchange-tls
|
|
rules:
|
|
- host: zoo.exchange
|
|
http:
|
|
paths:
|
|
- { path: /, pathType: Prefix, backend: { service: { name: zoo-exchange, port: { number: 3000 } } } }
|
|
- host: www.zoo.exchange
|
|
http:
|
|
paths:
|
|
- { path: /, pathType: Prefix, backend: { service: { name: zoo-exchange, port: { number: 3000 } } } }
|
|
- host: exchange.zoo.network
|
|
http:
|
|
paths:
|
|
- { path: /, pathType: Prefix, backend: { service: { name: zoo-exchange, port: { number: 3000 } } } }
|
|
- host: trade.zoo.exchange
|
|
http:
|
|
paths:
|
|
- { path: /, pathType: Prefix, backend: { service: { name: zoo-exchange, port: { number: 3000 } } } }
|