Skip to content

Commit d5a1a1b

Browse files
committed
add zero downtime scale tests
1 parent e30ed0b commit d5a1a1b

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

tests/suite/scale_test.go

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,13 +1041,8 @@ var _ = Describe("Zero downtime scale test", Ordered, Label("nfr", "zero-downtim
10411041
return fmt.Errorf("failed to get gateway: %w", err)
10421042
}
10431043

1044-
currentListeners := len(gw.Status.Listeners)
1045-
currentGen := gw.Status
1046-
specGen := gw.Generation
1047-
1048-
if currentListeners != num {
1049-
return fmt.Errorf("gateway listeners: got %d, want %d (observedGen: %v, specGen: %v)",
1050-
currentListeners, num, currentGen, specGen)
1044+
if len(gw.Status.Listeners) != num {
1045+
return fmt.Errorf("gateway listeners not updated to %d entries", num)
10511046
}
10521047

10531048
return nil
@@ -1058,6 +1053,38 @@ var _ = Describe("Zero downtime scale test", Ordered, Label("nfr", "zero-downtim
10581053
Should(Succeed())
10591054
}
10601055

1056+
It("scales up abruptly without downtime", func() {
1057+
_, err := fmt.Fprint(outFile, "\n### Scale Up Abruptly\n")
1058+
Expect(err).ToNot(HaveOccurred())
1059+
1060+
testFileNamePrefix := formatTestFileNamePrefix("abrupt-scale-up", test.valuesFile)
1061+
1062+
var wg sync.WaitGroup
1063+
for _, test := range trafficConfigs {
1064+
wg.Add(1)
1065+
go func(cfg trafficCfg) {
1066+
defer GinkgoRecover()
1067+
defer wg.Done()
1068+
1069+
sendTraffic(cfg, testFileNamePrefix, 2*time.Minute)
1070+
}(test)
1071+
}
1072+
1073+
// allow traffic flow to start
1074+
time.Sleep(2 * time.Second)
1075+
1076+
Expect(resourceManager.ScaleNginxDeployment(ngfNamespace, releaseName, int32(test.numReplicas))).To(Succeed())
1077+
Expect(resourceManager.ApplyFromFiles([]string{"scale/zero-downtime/gateway-2.yaml"}, ns.Name)).To(Succeed())
1078+
checkGatewayListeners(3)
1079+
1080+
wg.Wait()
1081+
close(metricsCh)
1082+
1083+
for res := range metricsCh {
1084+
writeResults(testFileNamePrefix, res)
1085+
}
1086+
})
1087+
10611088
It("scales down abruptly without downtime", func() {
10621089
_, err := fmt.Fprint(outFile, "\n### Scale Down Abruptly\n")
10631090
Expect(err).ToNot(HaveOccurred())

0 commit comments

Comments
 (0)