diff --git a/scripts/e2e/cmd/runner/mfu_one_namespace_one_ingress_test.go b/scripts/e2e/cmd/runner/mfu_one_namespace_one_ingress_test.go index 720112963..0b2a9c5a6 100644 --- a/scripts/e2e/cmd/runner/mfu_one_namespace_one_ingress_test.go +++ b/scripts/e2e/cmd/runner/mfu_one_namespace_one_ingress_test.go @@ -359,6 +359,46 @@ var _ = Describe("MFU", func() { Expect(readBody(resp)).To(Equal("app")) }) + It("[empty-secret] should be able to update application gateway if empty secret is populated", func() { + namespaceName := "e2e-empty-secret" + ns := &v1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: namespaceName, + }, + } + klog.Info("Creating namespace: ", namespaceName) + _, err = clientset.CoreV1().Namespaces().Create(ns) + Expect(err).To(BeNil()) + + EmptySecretYamlPath := "testdata/one-namespace-one-ingress/empty-secret/empty-secret.yaml" + klog.Info("Applying empty secret yaml: ", EmptySecretYamlPath) + err = applyYaml(clientset, namespaceName, EmptySecretYamlPath) + Expect(err).To(BeNil()) + time.Sleep(30 * time.Second) + + AppYamlPath := "testdata/one-namespace-one-ingress/empty-secret/app.yaml" + klog.Info("Applying App yaml: ", AppYamlPath) + err = applyYaml(clientset, namespaceName, AppYamlPath) + Expect(err).To(BeNil()) + time.Sleep(30 * time.Second) + + SecretYamlPath := "testdata/one-namespace-one-ingress/empty-secret/populated-secret.yaml" + klog.Info("Update secret yaml: ", SecretYamlPath) + err = updateYaml(clientset, namespaceName, SecretYamlPath) + Expect(err).To(BeNil()) + time.Sleep(30 * time.Second) + + // get ip address for 1 ingress + klog.Info("Getting public IP from Ingress...") + publicIP, _ := getPublicIP(clientset, namespaceName) + Expect(publicIP).ToNot(Equal("")) + + urlHttps := fmt.Sprintf("https://%s", publicIP) + // http get to return 200 ok + _, err = makeGetRequest(urlHttps, "example.com", 200, true) + Expect(err).To(BeNil()) + }) + AfterEach(func() { // clear all namespaces cleanUp(clientset) diff --git a/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/app.yaml b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/app.yaml new file mode 100644 index 000000000..91d343655 --- /dev/null +++ b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/app.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-deployment +spec: + selector: + matchLabels: + app: app + replicas: 1 + template: + metadata: + labels: + app: app + spec: + containers: + - name: backendapp + imagePullPolicy: Always + image: docker.io/kennethreitz/httpbin + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: backend-service +spec: + selector: + app: app + ports: + - protocol: TCP + port: 80 + targetPort: 80 +--- +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress + annotations: + kubernetes.io/ingress.class: azure/application-gateway +spec: + tls: + - secretName: testsecret-tls + hosts: + - example.com + rules: + - host: example.com + http: + paths: + - path: / + backend: + serviceName: backend-service + servicePort: 80 diff --git a/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/empty-secret.yaml b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/empty-secret.yaml new file mode 100644 index 000000000..7b4bcbb83 --- /dev/null +++ b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/empty-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: testsecret-tls +type: kubernetes.io/tls +data: + tls.crt: "" + tls.key: "" \ No newline at end of file diff --git a/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/populated-secret.yaml b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/populated-secret.yaml new file mode 100644 index 000000000..88672bd67 --- /dev/null +++ b/scripts/e2e/cmd/runner/testdata/one-namespace-one-ingress/empty-secret/populated-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: testsecret-tls +type: kubernetes.io/tls +data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJEVENCdEFJSkFLWTlOYkJMVjlJTE1Bb0dDQ3FHU000OUJBTUNNQTh4RFRBTEJnTlZCQU1NQkhSbGMzUXcKSGhjTk1qQXdOVEU0TWpFeU1UUXpXaGNOTWpFd05URTRNakV5TVRReldqQVBNUTB3Q3dZRFZRUUREQVIwWlhOMApNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2eHlzV0lhZUFkenYveXdUNTl5NDNreXppUGViCmMvaEpLOCt1Nm9uMmtOYjJpZ2tuTDZndU9PYWxsamQxOVB1dTYwYmh4aEpobGJpcHpBcWZCcFYzYnpBS0JnZ3EKaGtqT1BRUURBZ05JQURCRkFpRUFzbGNmNjNId0hxUDZoMHJTdjg3TXlBRVVoWmRoUlNZdm5sMGQyazRxZGtZQwpJRG1qNWdDcFAzTldmZWRVZHh6bTlsOEtxRUl2c1VxL1hXYWxUODhTWitWQQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + tls.key: LS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KQmdncWhrak9QUU1CQnc9PQotLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUdQeE1qSytnOEd1dWhlMW1PQUZHY1V3V09xdHZRbjZCTHBQZVJGUTZUNHhvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFNnh5c1dJYWVBZHp2L3l3VDU5eTQza3l6aVBlYmMvaEpLOCt1Nm9uMmtOYjJpZ2tuTDZndQpPT2FsbGpkMTlQdXU2MGJoeGhKaGxiaXB6QXFmQnBWM2J3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= \ No newline at end of file diff --git a/scripts/e2e/go.mod b/scripts/e2e/go.mod index 170b4fafc..5f25c68a0 100644 --- a/scripts/e2e/go.mod +++ b/scripts/e2e/go.mod @@ -23,5 +23,6 @@ require ( k8s.io/apimachinery v0.16.5 k8s.io/client-go v0.16.5 k8s.io/klog v1.0.0 + k8s.io/klog/v2 v2.0.0 k8s.io/utils v0.0.0-20200414100711-2df71ebbae66 // indirect ) diff --git a/scripts/e2e/go.sum b/scripts/e2e/go.sum index 778f142f9..3330a2264 100644 --- a/scripts/e2e/go.sum +++ b/scripts/e2e/go.sum @@ -54,6 +54,7 @@ github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= @@ -237,6 +238,7 @@ k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUc k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0 h1:Foj74zO6RbjjP4hBEKjnYtjjAhGg4jNynUdYF6fJrok= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=