Introduce ConfigMap updating helpers into e2e/framework and retain default nginx-configuration state between tests

Group sublogic
This commit is contained in:
Andrew Louis 2018-04-10 14:14:36 -04:00
parent 085263f318
commit 19337f05fb
4 changed files with 114 additions and 26 deletions

View file

@ -41,6 +41,7 @@ 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()
@ -51,16 +52,24 @@ var _ = framework.IngressNginxDescribe("No Auth locations", func() {
Expect(s).NotTo(BeNil())
Expect(s.ObjectMeta).NotTo(BeNil())
updateConfigmap(setting, noAuthPath, f.KubeClientSet)
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() {
updateConfigmap(setting, "/.well-known/acme-challenge", f.KubeClientSet)
err := f.SetNginxConfigMapData(defaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
})
It("should return status code 401 when accessing '/' unauthentication", func() {

View file

@ -21,7 +21,6 @@ import (
"io/ioutil"
"net"
"strings"
"time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@ -29,7 +28,6 @@ import (
"k8s.io/api/extensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/kubernetes"
"k8s.io/ingress-nginx/test/e2e/framework"
)
@ -37,20 +35,32 @@ 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() {
updateConfigmap(setting, "false", f.KubeClientSet)
err := f.SetNginxConfigMapData(defaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
})
It("should respect port passed by the PROXY Protocol", func() {
host := "proxy-protocol"
updateConfigmap(setting, "true", f.KubeClientSet)
err := f.UpdateNginxConfigMapData(setting, "true")
Expect(err).NotTo(HaveOccurred())
ing, err := f.EnsureIngress(&v1beta1.Ingress{
ObjectMeta: metav1.ObjectMeta{
@ -111,19 +121,3 @@ var _ = framework.IngressNginxDescribe("Proxy Protocol", func() {
Expect(body).Should(ContainSubstring(fmt.Sprintf("x-forwarded-for=192.168.0.1")))
})
})
func updateConfigmap(k, v string, c kubernetes.Interface) {
By(fmt.Sprintf("updating configuration configmap setting %v to '%v'", k, v))
config, err := c.CoreV1().ConfigMaps("ingress-nginx").Get("nginx-configuration", metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
Expect(config).NotTo(BeNil())
if config.Data == nil {
config.Data = map[string]string{}
}
config.Data[k] = v
_, err = c.CoreV1().ConfigMaps("ingress-nginx").Update(config)
Expect(err).NotTo(HaveOccurred())
time.Sleep(1 * time.Second)
}

View file

@ -31,18 +31,32 @@ 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() {
updateConfigmap(serverTokens, "false", f.KubeClientSet)
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{
@ -83,8 +97,9 @@ var _ = framework.IngressNginxDescribe("Server Tokens", func() {
Expect(err).NotTo(HaveOccurred())
})
It("should exist Server header in the response when is enabled", func() {
updateConfigmap(serverTokens, "true", f.KubeClientSet)
It("should exists Server header in the response when is enabled", func() {
err := f.UpdateNginxConfigMapData(serverTokens, "true")
Expect(err).NotTo(HaveOccurred())
ing, err := f.EnsureIngress(&v1beta1.Ingress{
ObjectMeta: metav1.ObjectMeta{