82 lines
1.5 KiB
YAML
82 lines
1.5 KiB
YAML
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: ratelimit
|
|
namespace: default
|
|
|
|
spec:
|
|
rateLimit:
|
|
period: 1m
|
|
average: 6
|
|
burst: 12
|
|
sourceCriterion:
|
|
ipStrategy:
|
|
excludedIPs:
|
|
- 127.0.0.1/32
|
|
- 192.168.1.7
|
|
|
|
redis:
|
|
secret: redissecret
|
|
endpoints:
|
|
- "127.0.0.1:6379"
|
|
tls:
|
|
certSecret: tlssecret
|
|
caSecret: casecret
|
|
db: 0
|
|
poolSize: 42
|
|
maxActiveConns: 42
|
|
readTimeout: 42s
|
|
writeTimeout: 42s
|
|
dialTimeout: 42s
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: redissecret
|
|
namespace: default
|
|
data:
|
|
username: dXNlcg== # username: user
|
|
password: cGFzc3dvcmQ= # password: password
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: casecret
|
|
namespace: default
|
|
|
|
data:
|
|
ca: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: tlssecret
|
|
namespace: default
|
|
|
|
data:
|
|
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
|
|
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
|
|
|
|
---
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: test2.route
|
|
namespace: default
|
|
|
|
spec:
|
|
entryPoints:
|
|
- web
|
|
|
|
routes:
|
|
- match: Host(`foo.com`) && PathPrefix(`/will-be-limited`)
|
|
priority: 12
|
|
kind: Rule
|
|
services:
|
|
- name: whoami
|
|
port: 80
|
|
middlewares:
|
|
- name: ratelimit
|