...
1
2
3
4
19
20 package node
21
22 import (
23 "context"
24
25 "k8s.io/kubernetes/test/e2e/framework"
26 e2ejob "k8s.io/kubernetes/test/e2e/framework/job"
27 "k8s.io/kubernetes/test/e2e/scheduling"
28 "k8s.io/kubernetes/test/e2e/upgrades"
29
30 "github.com/onsi/ginkgo/v2"
31 "github.com/onsi/gomega"
32 )
33
34 const (
35 completions = int32(1)
36 )
37
38
39
40 type NvidiaGPUUpgradeTest struct {
41 }
42
43
44 func (NvidiaGPUUpgradeTest) Name() string { return "nvidia-gpu-upgrade [sig-node] [sig-scheduling]" }
45
46
47 func (t *NvidiaGPUUpgradeTest) Setup(ctx context.Context, f *framework.Framework) {
48 scheduling.SetupNVIDIAGPUNode(ctx, f, false)
49 ginkgo.By("Creating a job requesting gpu")
50 scheduling.StartJob(ctx, f, completions)
51 }
52
53
54
55 func (t *NvidiaGPUUpgradeTest) Test(ctx context.Context, f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
56 <-done
57 ginkgo.By("Verifying gpu job success")
58 scheduling.VerifyJobNCompletions(ctx, f, completions)
59 if upgrade == upgrades.MasterUpgrade || upgrade == upgrades.ClusterUpgrade {
60
61 job, err := e2ejob.GetJob(ctx, f.ClientSet, f.Namespace.Name, "cuda-add")
62 framework.ExpectNoError(err)
63 gomega.Expect(job.Status.Failed).To(gomega.BeZero(), "Job pods failed during master upgrade: %v", job.Status.Failed)
64 }
65 }
66
67
68 func (t *NvidiaGPUUpgradeTest) Teardown(ctx context.Context, f *framework.Framework) {
69
70 }
71
View as plain text