changed by suggest

This commit is contained in:
decker 2017-09-27 14:59:10 +08:00
parent 15c6a1175a
commit 5dfee7ba9a
3 changed files with 14 additions and 22 deletions

View file

@ -29,7 +29,7 @@ const (
type serverSnippet struct { type serverSnippet struct {
} }
// NewParser creates a new CORS annotation parser // NewParser creates a new server snippet annotation parser
func NewParser() parser.IngressAnnotation { func NewParser() parser.IngressAnnotation {
return serverSnippet{} return serverSnippet{}
} }

View file

@ -987,6 +987,7 @@ func (ic *GenericController) createServers(data []interface{},
// setup server-alias based on annotations // setup server-alias based on annotations
aliasAnnotation := ic.annotations.Alias(ing) aliasAnnotation := ic.annotations.Alias(ing)
srvsnippet := ic.annotations.ServerSnippet(ing)
for _, rule := range ing.Spec.Rules { for _, rule := range ing.Spec.Rules {
host := rule.Host host := rule.Host
@ -1002,6 +1003,17 @@ func (ic *GenericController) createServers(data []interface{},
} }
} }
//notifying the user that it has already been configured.
if servers[host].ServerSnippet != "" && srvsnippet != "" {
glog.Warningf("ingress %v/%v for host %v contains a Server Snippet section that it has already been configured.",
ing.Namespace, ing.Name, host)
}
// only add a server snippet if the server does not have one previously configured
if servers[host].ServerSnippet == "" && srvsnippet != "" {
servers[host].ServerSnippet = srvsnippet
}
// only add a certificate if the server does not have one previously configured // only add a certificate if the server does not have one previously configured
if servers[host].SSLCertificate != "" { if servers[host].SSLCertificate != "" {
continue continue
@ -1066,27 +1078,6 @@ func (ic *GenericController) createServers(data []interface{},
} }
} }
// configure server snippet
for _, ingIf := range data {
ing := ingIf.(*extensions.Ingress)
if !class.IsValid(ing, ic.cfg.IngressClass, ic.cfg.DefaultIngressClass) {
continue
}
for _, rule := range ing.Spec.Rules {
host := rule.Host
if host == "" {
host = defServerName
}
srvsnippet := ic.annotations.ServerSnippet(ing)
// only add a server snippet if the server does not have one previously configured
if servers[host].ServerSnippet == "" && srvsnippet != "" {
servers[host].ServerSnippet = srvsnippet
}
}
}
return servers return servers
} }

View file

@ -238,6 +238,7 @@ type Server struct {
CertificateAuth authtls.AuthSSLConfig `json:"certificateAuth"` CertificateAuth authtls.AuthSSLConfig `json:"certificateAuth"`
// ServerSnippet returns the snippet of server // ServerSnippet returns the snippet of server
// +optional
ServerSnippet string `json:"serverSnippet"` ServerSnippet string `json:"serverSnippet"`
} }