Skip to content

Commit 74c3146

Browse files
authored
Graceful recovery test improvements (#3628)
Updated the node debugger Job so it would no longer error when exiting. Also added some context to a few error messages, and allowed for test retries. Due to the nature of this test restarting the node (which is a kind container), I have a feeling that we get intermittent connection issues as things start back up, due to node issues and not necessarily NGF/nginx issues.
1 parent b5cf4be commit 74c3146

File tree

3 files changed

+7
-11
lines changed

3 files changed

+7
-11
lines changed

tests/framework/request.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ func Get(
2525
if err != nil {
2626
return 0, "", err
2727
}
28-
2928
defer resp.Body.Close()
3029

3130
body := new(bytes.Buffer)

tests/suite/graceful_recovery_test.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const (
3030

3131
// Since this test involves restarting of the test node, it is recommended to be run separate from other tests
3232
// such that any issues in this test do not interfere with other tests.
33-
var _ = Describe("Graceful Recovery test", Ordered, Label("graceful-recovery"), func() {
33+
var _ = Describe("Graceful Recovery test", Ordered, FlakeAttempts(2), Label("graceful-recovery"), func() {
3434
var (
3535
files = []string{
3636
"graceful-recovery/cafe.yaml",
@@ -120,13 +120,13 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("graceful-recovery"),
120120
return names, nil
121121
}
122122

123-
runNodeDebuggerJob := func(nginxPodName, jobScript string) (*v1.Job, error) {
123+
runNodeDebuggerJob := func(nginxPodName string) (*v1.Job, error) {
124124
ctx, cancel := context.WithTimeout(context.Background(), timeoutConfig.GetTimeout)
125125
defer cancel()
126126

127127
var nginxPod core.Pod
128128
if err := k8sClient.Get(ctx, types.NamespacedName{Namespace: ns.Name, Name: nginxPodName}, &nginxPod); err != nil {
129-
return nil, fmt.Errorf("error retrieving NGF Pod: %w", err)
129+
return nil, fmt.Errorf("error retrieving nginx Pod: %w", err)
130130
}
131131

132132
b, err := resourceManager.GetFileContents("graceful-recovery/node-debugger-job.yaml")
@@ -146,7 +146,6 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("graceful-recovery"),
146146
len(job.Spec.Template.Spec.Containers),
147147
)
148148
}
149-
job.Spec.Template.Spec.Containers[0].Args = []string{jobScript}
150149
job.Namespace = ns.Name
151150

152151
if err = resourceManager.Apply([]client.Object{job}); err != nil {
@@ -157,13 +156,11 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("graceful-recovery"),
157156
}
158157

159158
restartNginxContainer := func(nginxPodName, namespace, containerName string) {
160-
jobScript := "PID=$(pgrep -f \"nginx-agent\") && kill -9 $PID"
161-
162159
restartCount, err := getContainerRestartCount(nginxPodName, namespace, containerName)
163160
Expect(err).ToNot(HaveOccurred())
164161

165162
cleanUpPortForward()
166-
job, err := runNodeDebuggerJob(nginxPodName, jobScript)
163+
job, err := runNodeDebuggerJob(nginxPodName)
167164
Expect(err).ToNot(HaveOccurred())
168165

169166
Eventually(
@@ -524,11 +521,11 @@ func expectRequestToSucceed(appURL, address string, responseBodyMessage string)
524521
status, body, err := framework.Get(appURL, address, timeoutConfig.RequestTimeout, nil, nil)
525522

526523
if status != http.StatusOK {
527-
return errors.New("http status was not 200")
524+
return fmt.Errorf("http status was not 200, got %d: %w", status, err)
528525
}
529526

530527
if !strings.Contains(body, responseBodyMessage) {
531-
return errors.New("expected response body to contain correct body message")
528+
return fmt.Errorf("expected response body to contain correct body message, got: %s", body)
532529
}
533530

534531
return err

tests/suite/manifests/graceful-recovery/node-debugger-job.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spec:
1313
- name: node-debugger-container
1414
image: ubuntu:24.04
1515
command: ["/bin/bash", "-c"]
16-
args: ["to be replaced by the test"]
16+
args: ["pkill -x \"nginx-agent\""]
1717
securityContext:
1818
privileged: true
1919
volumeMounts:

0 commit comments

Comments
 (0)