Skip to content

Commit 595d14d

Browse files
committed
Merge remote-tracking branch 'origin/master' into backport/ingress_port_name
Signed-off-by: Ashing Zheng <[email protected]>
2 parents c831d6b + e6128ed commit 595d14d

File tree

6 files changed

+45
-13
lines changed

6 files changed

+45
-13
lines changed

internal/adc/translator/apisixroute.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ func (t *Translator) translateHTTPRule(tctx *provider.TranslateContext, ar *apiv
7272

7373
var enableWebsocket *bool
7474
service := t.buildService(ar, rule, ruleIndex)
75-
t.buildRoute(ar, service, rule, plugins, timeout, vars, &enableWebsocket)
75+
// should build upstream before route because route needs to know the enableWebsocket flag
7676
t.buildUpstream(tctx, service, ar, rule, ruleIndex, &enableWebsocket)
77+
t.buildRoute(ar, service, rule, plugins, timeout, vars, &enableWebsocket)
7778

7879
return service, nil
7980
}

test/e2e/crds/v2/route.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2285,6 +2285,9 @@ spec:
22852285
namespace: %s
22862286
`
22872287
BeforeEach(func() {
2288+
if framework.IngressVersion != "v1" {
2289+
Skip("skipping test in non-v1 ingress version")
2290+
}
22882291
s.DeployNginx(framework.NginxOptions{
22892292
Namespace: s.Namespace(),
22902293
Replicas: ptr.To(int32(1)),
@@ -2319,9 +2322,8 @@ spec:
23192322

23202323
applier.MustApplyAPIv2(types.NamespacedName{Namespace: s.Namespace(), Name: "default"},
23212324
new(apiv2.ApisixRoute), fmt.Sprintf(apisixRouteWithBackendWSS, s.Namespace()))
2322-
time.Sleep(6 * time.Second)
23232325

2324-
By("verify wss connection")
2326+
By("verify wss connection with retry")
23252327
u := url.URL{
23262328
Scheme: "wss",
23272329
Host: s.GetAPISIXHTTPSEndpoint(),
@@ -2335,8 +2337,13 @@ spec:
23352337
},
23362338
}
23372339

2338-
conn, resp, err := dialer.Dial(u.String(), headers)
2339-
Expect(err).ShouldNot(HaveOccurred(), "WebSocket handshake")
2340+
var conn *websocket.Conn
2341+
var resp *http.Response
2342+
Eventually(func() error {
2343+
var dialErr error
2344+
conn, resp, dialErr = dialer.Dial(u.String(), headers)
2345+
return dialErr
2346+
}).WithTimeout(30*time.Second).WithPolling(2*time.Second).Should(Succeed(), "WebSocket handshake should succeed")
23402347
Expect(resp.StatusCode).Should(Equal(http.StatusSwitchingProtocols))
23412348

23422349
defer func() {

test/e2e/framework/manifests/nginx.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,17 +143,23 @@ spec:
143143
port: 443
144144
protocol: TCP
145145
targetPort: 443
146+
{{ if eq .IngressVersion "v1" }}
146147
appProtocol: https
148+
{{ end }}
147149
- name: ws
148150
port: 8080
149151
protocol: TCP
150152
targetPort: 80
153+
{{ if eq .IngressVersion "v1" }}
151154
appProtocol: kubernetes.io/ws
155+
{{ end }}
152156
- name: wss
153157
port: 8443
154158
protocol: TCP
155159
targetPort: 443
160+
{{ if eq .IngressVersion "v1" }}
156161
appProtocol: kubernetes.io/wss
162+
{{ end }}
157163
type: ClusterIP
158164
---
159165
apiVersion: v1

test/e2e/framework/nginx.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ var (
3636
)
3737

3838
type NginxOptions struct {
39-
Namespace string
40-
Replicas *int32
39+
Namespace string
40+
Replicas *int32
41+
IngressVersion string
4142
}
4243

4344
func init() {
@@ -51,6 +52,7 @@ func init() {
5152
func (f *Framework) DeployNginx(opts NginxOptions) *corev1.Service {
5253
buf := bytes.NewBuffer(nil)
5354

55+
opts.IngressVersion = IngressVersion
5456
err := ngxSpecTpl.Execute(buf, opts)
5557
f.GomegaT.Expect(err).ToNot(HaveOccurred(), "rendering nginx spec")
5658

test/e2e/gatewayapi/httproute.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2486,6 +2486,9 @@ spec:
24862486
)
24872487

24882488
BeforeEach(func() {
2489+
if framework.IngressVersion != "v1" {
2490+
Skip("skipping test in non-v1 ingress version")
2491+
}
24892492
beforeEachHTTPS()
24902493
s.DeployNginx(framework.NginxOptions{
24912494
Namespace: s.Namespace(),
@@ -2523,8 +2526,13 @@ spec:
25232526
},
25242527
}
25252528

2526-
conn, resp, err := dialer.Dial(u.String(), headers)
2527-
Expect(err).ShouldNot(HaveOccurred(), "WebSocket handshake")
2529+
var conn *websocket.Conn
2530+
var resp *http.Response
2531+
Eventually(func() error {
2532+
var dialErr error
2533+
conn, resp, dialErr = dialer.Dial(u.String(), headers)
2534+
return dialErr
2535+
}).WithTimeout(30*time.Second).WithPolling(2*time.Second).Should(Succeed(), "WebSocket handshake should succeed")
25282536
Expect(resp.StatusCode).Should(Equal(http.StatusSwitchingProtocols))
25292537

25302538
defer func() {
@@ -2533,7 +2541,7 @@ spec:
25332541

25342542
By("send and receive message through WebSocket")
25352543
testMessage := "hello, this is APISIX"
2536-
err = conn.WriteMessage(websocket.TextMessage, []byte(testMessage))
2544+
err := conn.WriteMessage(websocket.TextMessage, []byte(testMessage))
25372545
Expect(err).ShouldNot(HaveOccurred(), "writing WebSocket message")
25382546

25392547
// Then our echo

test/e2e/ingress/ingress.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1089,6 +1089,9 @@ spec:
10891089
number: 8443
10901090
`
10911091
BeforeEach(func() {
1092+
if framework.IngressVersion != "v1" {
1093+
Skip("skipping test in non-v1 ingress version")
1094+
}
10921095
s.DeployNginx(framework.NginxOptions{
10931096
Namespace: s.Namespace(),
10941097
Replicas: ptr.To(int32(1)),
@@ -1134,8 +1137,13 @@ spec:
11341137
},
11351138
}
11361139

1137-
conn, resp, err := dialer.Dial(u.String(), headers)
1138-
Expect(err).ShouldNot(HaveOccurred(), "WebSocket handshake")
1140+
var conn *websocket.Conn
1141+
var resp *http.Response
1142+
Eventually(func() error {
1143+
var dialErr error
1144+
conn, resp, dialErr = dialer.Dial(u.String(), headers)
1145+
return dialErr
1146+
}).WithTimeout(30*time.Second).WithPolling(2*time.Second).Should(Succeed(), "WebSocket handshake should succeed")
11391147
Expect(resp.StatusCode).Should(Equal(http.StatusSwitchingProtocols))
11401148

11411149
defer func() {
@@ -1144,7 +1152,7 @@ spec:
11441152

11451153
By("send and receive message through WebSocket")
11461154
testMessage := "hello, this is APISIX"
1147-
err = conn.WriteMessage(websocket.TextMessage, []byte(testMessage))
1155+
err := conn.WriteMessage(websocket.TextMessage, []byte(testMessage))
11481156
Expect(err).ShouldNot(HaveOccurred(), "writing WebSocket message")
11491157

11501158
// Then our echo

0 commit comments

Comments
 (0)