Skip to content

Commit 057e036

Browse files
committed
fix port forwarding
1 parent 3c4cdaa commit 057e036

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

tests/suite/graceful_recovery_test.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ const (
2626
ngfContainerName = "nginx-gateway"
2727
)
2828

29+
var (
30+
baseHttpURL = "http://cafe.example.com"
31+
baseHttpsURL = "https://cafe.example.com"
32+
teaURL = baseHttpsURL + "/tea"
33+
coffeeURL = baseHttpURL + "/coffee"
34+
ngfPodName string
35+
)
36+
2937
// Since checkContainerLogsForErrors may experience interference from previous tests (as explained in the function
3038
// documentation), this test is recommended to be run separate from other nfr tests.
3139
var _ = Describe("Graceful Recovery test", Ordered, Label("functional", "graceful-recovery"), func() {
@@ -42,11 +50,6 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("functional", "gracefu
4250
},
4351
}
4452

45-
baseHttpURL := "http://cafe.example.com"
46-
baseHttpsURL := "https://cafe.example.com"
47-
teaURL := baseHttpsURL + "/tea"
48-
coffeeURL := baseHttpURL + "/coffee"
49-
5053
var ngfPodName string
5154

5255
BeforeAll(func() {
@@ -61,6 +64,8 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("functional", "gracefu
6164
Expect(err).ToNot(HaveOccurred())
6265
Expect(podNames).To(HaveLen(1))
6366

67+
startPortForwarding(serviceType, ngfNamespace, podNames)
68+
6469
ngfPodName = podNames[0]
6570
if portFwdPort != 0 {
6671
coffeeURL = fmt.Sprintf("%s:%d/coffee", baseHttpURL, portFwdPort)
@@ -115,6 +120,8 @@ func runRecoveryTest(teaURL, coffeeURL, ngfPodName, containerName string, files
115120
Expect(err).ToNot(HaveOccurred())
116121
}
117122

123+
portFwdPort = 0
124+
close(portForwardStopCh)
118125
restartContainer(ngfPodName, containerName)
119126

120127
if containerName != nginxContainerName {
@@ -127,6 +134,8 @@ func runRecoveryTest(teaURL, coffeeURL, ngfPodName, containerName string, files
127134
Should(Succeed())
128135
}
129136

137+
startPortForwarding(serviceType, ngfNamespace, []string{ngfPodName})
138+
130139
Eventually(
131140
func() error {
132141
return checkForWorkingTraffic(teaURL, coffeeURL)
@@ -359,7 +368,8 @@ func runNodeDebuggerJob(ngfPodName, jobScript string) (*v1.Job, error) {
359368
len(job.Spec.Template.Spec.Containers),
360369
)
361370
}
362-
job.Spec.Template.Spec.Containers[0].Args = []string{jobScript}
371+
portScript := "kill $(lsof -t -i:10443,10080)"
372+
job.Spec.Template.Spec.Containers[0].Args = []string{jobScript, portScript}
363373
job.Namespace = ngfNamespace
364374

365375
if err = resourceManager.Apply([]client.Object{job}); err != nil {

tests/suite/system_suite_test.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"k8s.io/apimachinery/pkg/types"
2525
"k8s.io/apimachinery/pkg/util/wait"
2626
"k8s.io/client-go/kubernetes"
27+
"k8s.io/client-go/rest"
2728
ctlr "sigs.k8s.io/controller-runtime"
2829
"sigs.k8s.io/controller-runtime/pkg/client"
2930
"sigs.k8s.io/controller-runtime/pkg/log"
@@ -75,6 +76,7 @@ var (
7576
version string
7677
clusterInfo framework.ClusterInfo
7778
skipNFRTests bool
79+
k8sConfig *rest.Config
7880
)
7981

8082
const (
@@ -96,7 +98,7 @@ type setupConfig struct {
9698
func setup(cfg setupConfig, extraInstallArgs ...string) {
9799
log.SetLogger(GinkgoLogr)
98100

99-
k8sConfig := ctlr.GetConfigOrDie()
101+
k8sConfig = ctlr.GetConfigOrDie()
100102
scheme := k8sRuntime.NewScheme()
101103
Expect(core.AddToScheme(scheme)).To(Succeed())
102104
Expect(apps.AddToScheme(scheme)).To(Succeed())
@@ -184,16 +186,26 @@ func setup(cfg setupConfig, extraInstallArgs ...string) {
184186
)
185187
Expect(err).ToNot(HaveOccurred())
186188
Expect(podNames).ToNot(BeEmpty())
189+
fmt.Println("service type: ", *serviceType)
187190

191+
labels := GinkgoLabelFilter()
192+
if !strings.Contains(labels, "graceful-recovery") {
193+
startPortForwarding(serviceType, installCfg.Namespace, podNames)
194+
}
195+
}
196+
197+
func startPortForwarding(serviceType *string, namespace string, podNames []string) {
198+
var err error
188199
if *serviceType != "LoadBalancer" {
200+
fmt.Println("port forwarding....")
189201
ports := []string{fmt.Sprintf("%d:80", ngfHTTPForwardedPort), fmt.Sprintf("%d:443", ngfHTTPSForwardedPort)}
190202
portForwardStopCh = make(chan struct{})
191-
err = framework.PortForward(k8sConfig, installCfg.Namespace, podNames[0], ports, portForwardStopCh)
203+
err = framework.PortForward(k8sConfig, namespace, podNames[0], ports, portForwardStopCh)
192204
address = "127.0.0.1"
193205
portFwdPort = ngfHTTPForwardedPort
194206
portFwdHTTPSPort = ngfHTTPSForwardedPort
195207
} else {
196-
address, err = resourceManager.GetLBIPAddress(installCfg.Namespace)
208+
address, err = resourceManager.GetLBIPAddress(namespace)
197209
}
198210
Expect(err).ToNot(HaveOccurred())
199211
}

0 commit comments

Comments
 (0)