Merge pull request #1398 from decker502/server-snippet
Surpport snippet for server section by the annotation of the ingess
This commit is contained in:
commit
75cccbbd32
6 changed files with 129 additions and 0 deletions
|
|
@ -36,6 +36,7 @@ import (
|
|||
"k8s.io/ingress/core/pkg/ingress/annotations/redirect"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/rewrite"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/secureupstream"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/serversnippet"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/serviceupstream"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/sessionaffinity"
|
||||
"k8s.io/ingress/core/pkg/ingress/annotations/snippet"
|
||||
|
|
@ -83,6 +84,7 @@ func newAnnotationExtractor(cfg extractorConfig) annotationExtractor {
|
|||
"DefaultBackend": defaultbackend.NewParser(cfg),
|
||||
"UpstreamVhost": upstreamvhost.NewParser(),
|
||||
"VtsFilterKey": vtsfilterkey.NewParser(),
|
||||
"ServerSnippet": serversnippet.NewParser(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -128,6 +130,7 @@ const (
|
|||
serverAlias = "Alias"
|
||||
clientBodyBufferSize = "ClientBodyBufferSize"
|
||||
certificateAuth = "CertificateAuth"
|
||||
serverSnippet = "ServerSnippet"
|
||||
)
|
||||
|
||||
func (e *annotationExtractor) ServiceUpstream(ing *extensions.Ingress) bool {
|
||||
|
|
@ -181,3 +184,8 @@ func (e *annotationExtractor) CertificateAuth(ing *extensions.Ingress) *authtls.
|
|||
secure := val.(*authtls.AuthSSLConfig)
|
||||
return secure
|
||||
}
|
||||
|
||||
func (e *annotationExtractor) ServerSnippet(ing *extensions.Ingress) string {
|
||||
val, _ := e.annotations[serverSnippet].Parse(ing)
|
||||
return val.(string)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -988,6 +988,7 @@ func (ic *GenericController) createServers(data []*extensions.Ingress,
|
|||
for _, ing := range data {
|
||||
// setup server-alias based on annotations
|
||||
aliasAnnotation := ic.annotations.Alias(ing)
|
||||
srvsnippet := ic.annotations.ServerSnippet(ing)
|
||||
|
||||
for _, rule := range ing.Spec.Rules {
|
||||
host := rule.Host
|
||||
|
|
@ -1003,6 +1004,17 @@ func (ic *GenericController) createServers(data []*extensions.Ingress,
|
|||
}
|
||||
}
|
||||
|
||||
//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
|
||||
if servers[host].SSLCertificate != "" {
|
||||
continue
|
||||
|
|
@ -1066,6 +1078,7 @@ func (ic *GenericController) createServers(data []*extensions.Ingress,
|
|||
servers[host].Alias = ""
|
||||
}
|
||||
}
|
||||
|
||||
return servers
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue