Skip to content

Commit

Permalink
Remove curl dependencies in e2e tests #9716 (#10296)
Browse files Browse the repository at this point in the history
* fix: Replace curl list backend with dbg command #9716

Signed-off-by: Son Bui <[email protected]>

* fix: Remove curl dependencies in e2e tests #9716

Signed-off-by: Son Bui <[email protected]>

---------

Signed-off-by: Son Bui <[email protected]>
  • Loading branch information
sonbui00 authored Aug 12, 2023
1 parent 53c2f27 commit a92e7b4
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 31 deletions.
20 changes: 9 additions & 11 deletions test/e2e/annotations/serviceupstream.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ import (
"github.com/stretchr/testify/assert"

"k8s.io/ingress-nginx/test/e2e/framework"

"k8s.io/ingress-nginx/internal/nginx"
)

var _ = framework.DescribeAnnotation("service-upstream", func() {
Expand Down Expand Up @@ -59,10 +57,10 @@ var _ = framework.DescribeAnnotation("service-upstream", func() {

ginkgo.By("checking if the Service Cluster IP and Port are used")
s := f.GetService(f.Namespace, framework.EchoService)
curlCmd := fmt.Sprintf("curl --fail --silent http://localhost:%v/configuration/backends", nginx.StatusPort)
output, err := f.ExecIngressPod(curlCmd)
dbgCmd := "/dbg backends all"
output, err := f.ExecIngressPod(dbgCmd)
assert.Nil(ginkgo.GinkgoT(), err)
assert.Contains(ginkgo.GinkgoT(), output, fmt.Sprintf(`{"address":"%s"`, s.Spec.ClusterIP))
assert.Contains(ginkgo.GinkgoT(), output, fmt.Sprintf(`"address": "%s"`, s.Spec.ClusterIP))
})
})

Expand All @@ -88,10 +86,10 @@ var _ = framework.DescribeAnnotation("service-upstream", func() {

ginkgo.By("checking if the Service Cluster IP and Port are used")
s := f.GetService(f.Namespace, framework.EchoService)
curlCmd := fmt.Sprintf("curl --fail --silent http://localhost:%v/configuration/backends", nginx.StatusPort)
output, err := f.ExecIngressPod(curlCmd)
dbgCmd := "/dbg backends all"
output, err := f.ExecIngressPod(dbgCmd)
assert.Nil(ginkgo.GinkgoT(), err)
assert.Contains(ginkgo.GinkgoT(), output, fmt.Sprintf(`{"address":"%s"`, s.Spec.ClusterIP))
assert.Contains(ginkgo.GinkgoT(), output, fmt.Sprintf(`"address": "%s"`, s.Spec.ClusterIP))
})
})

Expand Down Expand Up @@ -119,10 +117,10 @@ var _ = framework.DescribeAnnotation("service-upstream", func() {

ginkgo.By("checking if the Service Cluster IP and Port are not used")
s := f.GetService(f.Namespace, framework.EchoService)
curlCmd := fmt.Sprintf("curl --fail --silent http://localhost:%v/configuration/backends", nginx.StatusPort)
output, err := f.ExecIngressPod(curlCmd)
dbgCmd := "/dbg backends all"
output, err := f.ExecIngressPod(dbgCmd)
assert.Nil(ginkgo.GinkgoT(), err)
assert.NotContains(ginkgo.GinkgoT(), output, fmt.Sprintf(`{"address":"%s"`, s.Spec.ClusterIP))
assert.NotContains(ginkgo.GinkgoT(), output, fmt.Sprintf(`"address": "%s"`, s.Spec.ClusterIP))
})
})
})
5 changes: 2 additions & 3 deletions test/e2e/endpointslices/topology.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import (
"github.com/onsi/ginkgo/v2"
"github.com/stretchr/testify/assert"

"k8s.io/ingress-nginx/internal/nginx"
"k8s.io/ingress-nginx/test/e2e/framework"
)

Expand Down Expand Up @@ -72,8 +71,8 @@ var _ = framework.IngressNginxDescribeSerial("[TopologyHints] topology aware rou
}
}

curlCmd := fmt.Sprintf("curl --fail --silent http://localhost:%v/configuration/backends", nginx.StatusPort)
status, err := f.ExecIngressPod(curlCmd)
dbgCmd := "/dbg backends all"
status, err := f.ExecIngressPod(dbgCmd)
assert.Nil(ginkgo.GinkgoT(), err)
var backends []map[string]interface{}
err = json.Unmarshal([]byte(status), &backends)
Expand Down
11 changes: 3 additions & 8 deletions test/e2e/servicebackend/service_externalname.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import (
networking "k8s.io/api/networking/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"k8s.io/ingress-nginx/internal/nginx"
"k8s.io/ingress-nginx/test/e2e/framework"
)

Expand Down Expand Up @@ -330,17 +329,13 @@ var _ = framework.IngressNginxDescribe("[Service] Type ExternalName", func() {
assert.Contains(ginkgo.GinkgoT(), body, `"X-Forwarded-Host": "echo"`)

ginkgo.By("checking the service is updated to use new host")
curlCmd := fmt.Sprintf(
"curl --fail --silent http://localhost:%v/configuration/backends",
nginx.StatusPort,
)

output, err := f.ExecIngressPod(curlCmd)
dbgCmd := "/dbg backends all"
output, err := f.ExecIngressPod(dbgCmd)
assert.Nil(ginkgo.GinkgoT(), err)
assert.Contains(
ginkgo.GinkgoT(),
output,
fmt.Sprintf("{\"address\":\"%s\"", framework.BuildNIPHost(ip)),
fmt.Sprintf(`"address": "%s"`, framework.BuildNIPHost(ip)),
)
})

Expand Down
20 changes: 11 additions & 9 deletions test/e2e/settings/tls.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,15 +170,17 @@ var _ = framework.DescribeSetting("[SSL] TLS protocols, ciphers and headers)", f
hstsIncludeSubdomains: "false",
})

// we can not use gorequest here because it flattens the duplicate headers
// and specifically in case of Strict-Transport-Security it ignore extra headers
// intead of concatenating, rightfully. And I don't know of any API it provides for getting raw headers.
curlCmd := fmt.Sprintf("curl -I -k --fail --silent --resolve settings-tls:443:127.0.0.1 https://settings-tls%v", "?hsts=true")
output, err := f.ExecIngressPod(curlCmd)
assert.Nil(ginkgo.GinkgoT(), err)
assert.Contains(ginkgo.GinkgoT(), output, "strict-transport-security: max-age=86400; preload")
// this is what the upstream sets
assert.NotContains(ginkgo.GinkgoT(), output, "strict-transport-security: max-age=3600; preload")
expectResponse := f.HTTPTestClientWithTLSConfig(tlsConfig).
GET("/").
WithURL(f.GetURL(framework.HTTPS)).
WithHeader("Host", host).
WithQuery("hsts", "true").
Expect()

expectResponse.Header("Strict-Transport-Security").Equal("max-age=86400; preload")
header := expectResponse.Raw().Header
got := header["Strict-Transport-Security"]
assert.Equal(ginkgo.GinkgoT(), 1, len(got))
})

})
Expand Down

0 comments on commit a92e7b4

Please sign in to comment.