@@ -22,8 +22,6 @@ import (
22
22
"github.com/onsi/ginkgo/v2"
23
23
"github.com/onsi/gomega"
24
24
batchv1 "k8s.io/api/batch/v1"
25
- corev1 "k8s.io/api/core/v1"
26
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27
25
"k8s.io/apimachinery/pkg/types"
28
26
29
27
jobset "sigs.k8s.io/jobset/api/v1alpha1"
@@ -35,36 +33,12 @@ const (
35
33
interval = time .Millisecond * 250
36
34
)
37
35
38
- var _ = ginkgo .Describe ("JobSet defaulting" , func () {
39
- // Each test runs in a separate namespace.
40
- var ns * corev1.Namespace
36
+ var _ = ginkgo .Describe ("jobset webhook defaulting" , func () {
41
37
42
- ginkgo .BeforeEach (func () {
43
- // Create test namespace before each test.
44
- ns = & corev1.Namespace {
45
- ObjectMeta : metav1.ObjectMeta {
46
- GenerateName : "test-ns-" ,
47
- },
48
- }
49
- gomega .Expect (k8sClient .Create (ctx , ns )).To (gomega .Succeed ())
50
-
51
- // Wait for namespace to exist before proceeding with test.
52
- gomega .Eventually (func () bool {
53
- err := k8sClient .Get (ctx , types.NamespacedName {Namespace : ns .Namespace , Name : ns .Name }, ns )
54
- if err != nil {
55
- return false
56
- }
57
- return true
58
- }, timeout , interval ).Should (gomega .BeTrue ())
59
- })
60
-
61
- ginkgo .AfterEach (func () {
62
- // Delete test namespace after each test.
63
- gomega .Expect (k8sClient .Delete (ctx , ns )).To (gomega .Succeed ())
64
- })
38
+ var ns string = "default"
65
39
66
40
type testCase struct {
67
- makeJobSet func (* corev1. Namespace ) * testing.JobSetWrapper
41
+ makeJobSet func () * testing.JobSetWrapper
68
42
defaultsApplied func (* jobset.JobSet ) bool
69
43
}
70
44
@@ -74,32 +48,31 @@ var _ = ginkgo.Describe("JobSet defaulting", func() {
74
48
75
49
// Create JobSet.
76
50
ginkgo .By ("creating jobset" )
77
- js := tc .makeJobSet (ns ).Obj ()
51
+ js := tc .makeJobSet ().Obj ()
78
52
79
53
// Verify jobset created successfully.
80
54
ginkgo .By ("checking that jobset creation succeeds" )
81
55
gomega .Expect (k8sClient .Create (ctx , js )).Should (gomega .Succeed ())
82
56
83
57
// We'll need to retry getting this newly created jobset, given that creation may not immediately happen.
84
- gomega .Eventually (k8sClient .Get (ctx , types.NamespacedName {Name : js .Name , Namespace : js .Namespace }, js ), timeout , interval ).Should (gomega .Succeed ())
58
+ var fetchedJS jobset.JobSet
59
+ gomega .Eventually (k8sClient .Get (ctx , types.NamespacedName {Name : js .Name , Namespace : js .Namespace }, & fetchedJS ), timeout , interval ).Should (gomega .Succeed ())
85
60
86
61
// Check defaulting.
87
- if tc .defaultsApplied != nil {
88
- gomega .Expect (tc .defaultsApplied (js )).Should (gomega .Equal (true ))
89
- }
62
+ gomega .Expect (tc .defaultsApplied (& fetchedJS )).Should (gomega .Equal (true ))
90
63
},
91
64
ginkgo .Entry ("check job.spec.completionMode defaults to indexed if unset" , & testCase {
92
- makeJobSet : func (ns * corev1. Namespace ) * testing.JobSetWrapper {
93
- return testing .MakeJobSet ("js-hostnames-non-indexed" , ns . Name ).
65
+ makeJobSet : func () * testing.JobSetWrapper {
66
+ return testing .MakeJobSet ("js-hostnames-non-indexed" , ns ).
94
67
ReplicatedJob (testing .MakeReplicatedJob ("test-job" ).
95
- Job (testing .MakeJobTemplate ("test-job" , ns . Name ).
68
+ Job (testing .MakeJobTemplate ("test-job" , ns ).
96
69
PodSpec (testing .TestPodSpec ).Obj ()).
97
70
EnableDNSHostnames (true ).
98
71
Obj ())
99
72
},
100
73
defaultsApplied : func (js * jobset.JobSet ) bool {
101
- mode := batchv1 . IndexedCompletion
102
- return js . Spec . Jobs [ 0 ]. Template . Spec . CompletionMode == & mode
74
+ completionMode := js . Spec . Jobs [ 0 ]. Template . Spec . CompletionMode
75
+ return completionMode != nil && * completionMode == batchv1 . IndexedCompletion
103
76
},
104
77
}),
105
78
) // end of DescribeTable
@@ -108,14 +81,14 @@ var _ = ginkgo.Describe("JobSet defaulting", func() {
108
81
// 2 replicated jobs:
109
82
// - one with 1 replica
110
83
// - one with 3 replicas and DNS hostnames enabled
111
- func testJobSet (ns * corev1. Namespace ) * testing.JobSetWrapper {
112
- return testing .MakeJobSet ("test-js" , ns . Name ).
84
+ func testJobSet (ns string ) * testing.JobSetWrapper {
85
+ return testing .MakeJobSet ("test-js" , ns ).
113
86
ReplicatedJob (testing .MakeReplicatedJob ("replicated-job-a" ).
114
- Job (testing .MakeJobTemplate ("test-job-A" , ns . Name ).PodSpec (testing .TestPodSpec ).Obj ()).
87
+ Job (testing .MakeJobTemplate ("test-job-A" , ns ).PodSpec (testing .TestPodSpec ).Obj ()).
115
88
Replicas (1 ).
116
89
Obj ()).
117
90
ReplicatedJob (testing .MakeReplicatedJob ("replicated-job-b" ).
118
- Job (testing .MakeJobTemplate ("test-job-B" , ns . Name ).PodSpec (testing .TestPodSpec ).CompletionMode (batchv1 .IndexedCompletion ).Obj ()).
91
+ Job (testing .MakeJobTemplate ("test-job-B" , ns ).PodSpec (testing .TestPodSpec ).CompletionMode (batchv1 .IndexedCompletion ).Obj ()).
119
92
EnableDNSHostnames (true ).
120
93
Replicas (3 ).
121
94
Obj ())
0 commit comments