diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index b85c12b73..2af16d1df 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -61,6 +61,9 @@ type Framework struct { // should abort, the AfterSuite hook should run all Cleanup actions. cleanupHandle CleanupActionHandle + // Map to hold the default nginx-configuration configmap data before a test run + DefaultNginxConfigMapData map[string]string + NginxHTTPURL string NginxHTTPSURL string } @@ -69,7 +72,8 @@ type Framework struct { // you (you can write additional before/after each functions). func NewDefaultFramework(baseName string) *Framework { f := &Framework{ - BaseName: baseName, + BaseName: baseName, + DefaultNginxConfigMapData: nil, } BeforeEach(f.BeforeEach) @@ -101,6 +105,13 @@ func (f *Framework) BeforeEach() { By("Building NGINX HTTPS URL") f.NginxHTTPSURL, err = f.GetNginxURL(HTTPS) Expect(err).NotTo(HaveOccurred()) + + By("Persist nginx-configuration configMap Data") + if f.DefaultNginxConfigMapData == nil { + f.DefaultNginxConfigMapData, err = f.GetNginxConfigMapData() + Expect(err).NotTo(HaveOccurred()) + Expect(f.DefaultNginxConfigMapData).NotTo(BeNil()) + } } // AfterEach deletes the namespace, after reading its events. @@ -114,6 +125,10 @@ func (f *Framework) AfterEach() { By("Waiting for test namespace to no longer exist") err = WaitForNoPodsInNamespace(f.KubeClientSet, f.Namespace.Name) Expect(err).NotTo(HaveOccurred()) + + By("Reset nginx-configuration configMap to default state") + err = f.SetNginxConfigMapData(f.DefaultNginxConfigMapData) + Expect(err).NotTo(HaveOccurred()) } // IngressNginxDescribe wrapper function for ginkgo describe. Adds namespacing. @@ -259,8 +274,7 @@ func (f *Framework) matchNginxConditions(name string, matcher func(cfg string) b } } -// GetNginxConfigMap gets ingress-nginx's nginx-configuration map -func (f *Framework) GetNginxConfigMap() (*v1.ConfigMap, error) { +func (f *Framework) getNginxConfigMap() (*v1.ConfigMap, error) { if f.KubeClientSet == nil { return nil, fmt.Errorf("KubeClientSet not initialized") } @@ -270,22 +284,15 @@ func (f *Framework) GetNginxConfigMap() (*v1.ConfigMap, error) { return nil, err } - time.Sleep(1 * time.Second) return config, err } // GetNginxConfigMapData gets ingress-nginx's nginx-configuration map's data func (f *Framework) GetNginxConfigMapData() (map[string]string, error) { - config, err := f.GetNginxConfigMap() - + config, err := f.getNginxConfigMap() if err != nil { return nil, err } - - if config == nil { - return nil, fmt.Errorf("Unable to get nginx-configuration configMap") - } - if config.Data == nil { config.Data = map[string]string{} } @@ -297,7 +304,7 @@ func (f *Framework) GetNginxConfigMapData() (map[string]string, error) { func (f *Framework) SetNginxConfigMapData(cmData map[string]string) error { // Needs to do a Get and Set, Update will not take just the Data field // or a configMap that is not the very last revision - config, err := f.GetNginxConfigMap() + config, err := f.getNginxConfigMap() if err != nil { return err } diff --git a/test/e2e/settings/no_auth_locations.go b/test/e2e/settings/no_auth_locations.go index e7a421424..ae801a840 100644 --- a/test/e2e/settings/no_auth_locations.go +++ b/test/e2e/settings/no_auth_locations.go @@ -41,7 +41,6 @@ var _ = framework.IngressNginxDescribe("No Auth locations", func() { secretName := "test-secret" host := "no-auth-locations" noAuthPath := "/noauth" - var defaultNginxConfigMapData map[string]string = nil BeforeEach(func() { err := f.NewEchoDeployment() @@ -52,24 +51,16 @@ var _ = framework.IngressNginxDescribe("No Auth locations", func() { Expect(s).NotTo(BeNil()) Expect(s.ObjectMeta).NotTo(BeNil()) + err = f.UpdateNginxConfigMapData(setting, noAuthPath) + Expect(err).NotTo(HaveOccurred()) + bi := buildBasicAuthIngressWithSecondPath(host, f.Namespace.Name, s.Name, noAuthPath) ing, err := f.EnsureIngress(bi) Expect(err).NotTo(HaveOccurred()) Expect(ing).NotTo(BeNil()) - - if defaultNginxConfigMapData == nil { - defaultNginxConfigMapData, err = f.GetNginxConfigMapData() - Expect(err).NotTo(HaveOccurred()) - Expect(defaultNginxConfigMapData).NotTo(BeNil()) - } - - err = f.UpdateNginxConfigMapData(setting, noAuthPath) - Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { - err := f.SetNginxConfigMapData(defaultNginxConfigMapData) - Expect(err).NotTo(HaveOccurred()) }) It("should return status code 401 when accessing '/' unauthentication", func() { diff --git a/test/e2e/settings/proxy_protocol.go b/test/e2e/settings/proxy_protocol.go index 2b81afca6..94ce2b4b5 100644 --- a/test/e2e/settings/proxy_protocol.go +++ b/test/e2e/settings/proxy_protocol.go @@ -35,25 +35,16 @@ var _ = framework.IngressNginxDescribe("Proxy Protocol", func() { f := framework.NewDefaultFramework("proxy-protocol") setting := "use-proxy-protocol" - var defaultNginxConfigMapData map[string]string = nil BeforeEach(func() { err := f.NewEchoDeployment() Expect(err).NotTo(HaveOccurred()) - if defaultNginxConfigMapData == nil { - defaultNginxConfigMapData, err = f.GetNginxConfigMapData() - Expect(err).NotTo(HaveOccurred()) - Expect(defaultNginxConfigMapData).NotTo(BeNil()) - } - err = f.UpdateNginxConfigMapData(setting, "false") Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { - err := f.SetNginxConfigMapData(defaultNginxConfigMapData) - Expect(err).NotTo(HaveOccurred()) }) It("should respect port passed by the PROXY Protocol", func() { diff --git a/test/e2e/settings/server_tokens.go b/test/e2e/settings/server_tokens.go index f8c21c847..c5420ffff 100644 --- a/test/e2e/settings/server_tokens.go +++ b/test/e2e/settings/server_tokens.go @@ -31,32 +31,18 @@ import ( var _ = framework.IngressNginxDescribe("Server Tokens", func() { f := framework.NewDefaultFramework("server-tokens") serverTokens := "server-tokens" - var defaultNginxConfigMapData map[string]string = nil BeforeEach(func() { err := f.NewEchoDeployment() Expect(err).NotTo(HaveOccurred()) - - if defaultNginxConfigMapData == nil { - defaultNginxConfigMapData, err = f.GetNginxConfigMapData() - Expect(err).NotTo(HaveOccurred()) - Expect(defaultNginxConfigMapData).NotTo(BeNil()) - } }) AfterEach(func() { - err := f.SetNginxConfigMapData(defaultNginxConfigMapData) - Expect(err).NotTo(HaveOccurred()) }) -<<<<<<< HEAD - It("should not exist Server header in the response", func() { - updateConfigmap(serverTokens, "false", f.KubeClientSet) -======= It("should not exists Server header in the response", func() { err := f.UpdateNginxConfigMapData(serverTokens, "false") Expect(err).NotTo(HaveOccurred()) ->>>>>>> Introduce ConfigMap updating helpers into e2e/framework and retain default nginx-configuration state between tests ing, err := f.EnsureIngress(&v1beta1.Ingress{ ObjectMeta: metav1.ObjectMeta{