Merge pull request #3696 from Shopify/annotate-default-location
Apply annotations to default location
This commit is contained in:
commit
eab7f18297
2 changed files with 108 additions and 5 deletions
|
@ -996,11 +996,32 @@ func (n *NGINXController) createServers(data []*ingress.Ingress,
|
||||||
Hostname: host,
|
Hostname: host,
|
||||||
Locations: []*ingress.Location{
|
Locations: []*ingress.Location{
|
||||||
{
|
{
|
||||||
Path: rootLocation,
|
Path: rootLocation,
|
||||||
IsDefBackend: true,
|
IsDefBackend: true,
|
||||||
Backend: un,
|
Backend: un,
|
||||||
Proxy: ngxProxy,
|
Service: &apiv1.Service{},
|
||||||
Service: &apiv1.Service{},
|
BasicDigestAuth: anns.BasicDigestAuth,
|
||||||
|
ClientBodyBufferSize: anns.ClientBodyBufferSize,
|
||||||
|
ConfigurationSnippet: anns.ConfigurationSnippet,
|
||||||
|
CorsConfig: anns.CorsConfig,
|
||||||
|
ExternalAuth: anns.ExternalAuth,
|
||||||
|
Proxy: anns.Proxy,
|
||||||
|
RateLimit: anns.RateLimit,
|
||||||
|
Redirect: anns.Redirect,
|
||||||
|
Rewrite: anns.Rewrite,
|
||||||
|
UpstreamVhost: anns.UpstreamVhost,
|
||||||
|
Whitelist: anns.Whitelist,
|
||||||
|
Denied: anns.Denied,
|
||||||
|
XForwardedPrefix: anns.XForwardedPrefix,
|
||||||
|
UsePortInRedirects: anns.UsePortInRedirects,
|
||||||
|
Connection: anns.Connection,
|
||||||
|
Logs: anns.Logs,
|
||||||
|
LuaRestyWAF: anns.LuaRestyWAF,
|
||||||
|
InfluxDB: anns.InfluxDB,
|
||||||
|
DefaultBackend: anns.DefaultBackend,
|
||||||
|
BackendProtocol: anns.BackendProtocol,
|
||||||
|
CustomHTTPErrors: anns.CustomHTTPErrors,
|
||||||
|
ModSecurity: anns.ModSecurity,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
SSLPassthrough: anns.SSLPassthrough,
|
SSLPassthrough: anns.SSLPassthrough,
|
||||||
|
|
82
test/e2e/defaultbackend/with_hosts.go
Normal file
82
test/e2e/defaultbackend/with_hosts.go
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
Copyright 2017 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package defaultbackend
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
"github.com/parnurzeal/gorequest"
|
||||||
|
extensions "k8s.io/api/extensions/v1beta1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
"k8s.io/ingress-nginx/test/e2e/framework"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = framework.IngressNginxDescribe("Default backend with hosts", func() {
|
||||||
|
f := framework.NewDefaultFramework("default-backend-hosts")
|
||||||
|
host := "foo.com"
|
||||||
|
|
||||||
|
BeforeEach(func() {
|
||||||
|
f.NewEchoDeploymentWithReplicas(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
AfterEach(func() {
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should apply the annotation to the default backend", func() {
|
||||||
|
annotations := map[string]string{
|
||||||
|
"nginx.ingress.kubernetes.io/proxy-buffer-size": "8k",
|
||||||
|
}
|
||||||
|
|
||||||
|
ing := &extensions.Ingress{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "default-backend-annotations",
|
||||||
|
Namespace: f.IngressController.Namespace,
|
||||||
|
Annotations: annotations,
|
||||||
|
},
|
||||||
|
Spec: extensions.IngressSpec{
|
||||||
|
Backend: &extensions.IngressBackend{
|
||||||
|
ServiceName: "http-svc",
|
||||||
|
ServicePort: intstr.FromInt(8080),
|
||||||
|
},
|
||||||
|
Rules: []extensions.IngressRule{
|
||||||
|
{
|
||||||
|
Host: host,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
f.EnsureIngress(ing)
|
||||||
|
|
||||||
|
f.WaitForNginxServer(host,
|
||||||
|
func(server string) bool {
|
||||||
|
return strings.Contains(server, "proxy_buffer_size 8k;")
|
||||||
|
})
|
||||||
|
|
||||||
|
resp, _, errs := gorequest.New().
|
||||||
|
Get(f.IngressController.HTTPURL).
|
||||||
|
Set("Host", "foo.com").
|
||||||
|
End()
|
||||||
|
|
||||||
|
Expect(errs).Should(BeEmpty())
|
||||||
|
Expect(resp.StatusCode).Should(Equal(http.StatusOK))
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
Loading…
Reference in a new issue