refactor rate limit whitelist

This commit is contained in:
Seth Pollack 2017-08-22 20:47:29 -04:00
parent 529342589f
commit f045fa6d88
4 changed files with 47 additions and 31 deletions

12
core/pkg/base64/base64.go Normal file
View file

@ -0,0 +1,12 @@
package base64
import (
"encoding/base64"
"strings"
)
// Base64Encode
func Base64Encode(s string) string {
str := base64.URLEncoding.EncodeToString([]byte(s))
return strings.Replace(str, "=", "", -1)
}

View file

@ -23,6 +23,7 @@ import (
extensions "k8s.io/api/extensions/v1beta1"
"k8s.io/ingress/core/pkg/base64"
"k8s.io/ingress/core/pkg/ingress/annotations/parser"
"k8s.io/ingress/core/pkg/ingress/resolver"
"k8s.io/ingress/core/pkg/net"
@ -62,6 +63,8 @@ type RateLimit struct {
Name string `json:"name"`
ID string `json:"id"`
Whitelist []string `json:"whitelist"`
}
@ -209,6 +212,7 @@ func (a ratelimit) Parse(ing *extensions.Ingress) (interface{}, error) {
LimitRate: lr,
LimitRateAfter: lra,
Name: zoneName,
ID: base64.Base64Encode(zoneName),
Whitelist: cidrs,
}, nil
}