fix: propagate source criterion config to RateLimit middleware in Kubernetes CRD
This commit is contained in:
parent
321c9421ea
commit
ef2d03d96e
3 changed files with 36 additions and 1 deletions
|
@ -9,6 +9,24 @@ spec:
|
||||||
prefixes:
|
prefixes:
|
||||||
- /tobestripped
|
- /tobestripped
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.containo.us/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
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
kind: Middleware
|
kind: Middleware
|
||||||
|
@ -40,5 +58,6 @@ spec:
|
||||||
port: 80
|
port: 80
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: stripprefix
|
- name: stripprefix
|
||||||
|
- name: ratelimit
|
||||||
- name: addprefix
|
- name: addprefix
|
||||||
namespace: foo
|
namespace: foo
|
||||||
|
|
|
@ -426,6 +426,10 @@ func createRateLimitMiddleware(rateLimit *v1alpha1.RateLimit) (*dynamic.RateLimi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rateLimit.SourceCriterion != nil {
|
||||||
|
rl.SourceCriterion = rateLimit.SourceCriterion
|
||||||
|
}
|
||||||
|
|
||||||
return rl, nil
|
return rl, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1470,10 +1470,22 @@ func TestLoadIngressRoutes(t *testing.T) {
|
||||||
Service: "default-test2-route-23c7f4c450289ee29016",
|
Service: "default-test2-route-23c7f4c450289ee29016",
|
||||||
Rule: "Host(`foo.com`) && PathPrefix(`/tobestripped`)",
|
Rule: "Host(`foo.com`) && PathPrefix(`/tobestripped`)",
|
||||||
Priority: 12,
|
Priority: 12,
|
||||||
Middlewares: []string{"default-stripprefix", "foo-addprefix"},
|
Middlewares: []string{"default-stripprefix", "default-ratelimit", "foo-addprefix"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Middlewares: map[string]*dynamic.Middleware{
|
Middlewares: map[string]*dynamic.Middleware{
|
||||||
|
"default-ratelimit": {
|
||||||
|
RateLimit: &dynamic.RateLimit{
|
||||||
|
Average: 6,
|
||||||
|
Burst: 12,
|
||||||
|
Period: ptypes.Duration(60 * time.Second),
|
||||||
|
SourceCriterion: &dynamic.SourceCriterion{
|
||||||
|
IPStrategy: &dynamic.IPStrategy{
|
||||||
|
ExcludedIPs: []string{"127.0.0.1/32", "192.168.1.7"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
"default-stripprefix": {
|
"default-stripprefix": {
|
||||||
StripPrefix: &dynamic.StripPrefix{
|
StripPrefix: &dynamic.StripPrefix{
|
||||||
Prefixes: []string{"/tobestripped"},
|
Prefixes: []string{"/tobestripped"},
|
||||||
|
|
Loading…
Add table
Reference in a new issue