Skip to content

Commit 385b8ef

Browse files
sutaakaropenshift-merge-bot[bot]
authored andcommitted
Add functions to create a Kueue resources
1 parent 69f4dc6 commit 385b8ef

File tree

3 files changed

+154
-0
lines changed

3 files changed

+154
-0
lines changed

support/fakeclient.go

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"k8s.io/apimachinery/pkg/runtime"
99
fakeDynamic "k8s.io/client-go/dynamic/fake"
1010
fakeCore "k8s.io/client-go/kubernetes/fake"
11+
fakekueue "sigs.k8s.io/kueue/client-go/clientset/versioned/fake"
1112

1213
fakeimage "github.com/openshift/client-go/image/clientset/versioned/fake"
1314
fakeMachine "github.com/openshift/client-go/machine/clientset/versioned/fake"
@@ -20,6 +21,7 @@ func NewTest(t *testing.T) *T {
2021
fakeimageClient := fakeimage.NewSimpleClientset()
2122
fakerouteClient := fakeroute.NewSimpleClientset()
2223
fakerayClient := fakeray.NewSimpleClientset()
24+
fakekueueClient := fakekueue.NewSimpleClientset()
2325
fakedynamicClient := fakeDynamic.NewSimpleDynamicClient(runtime.NewScheme())
2426

2527
test := With(t).(*T)
@@ -29,6 +31,7 @@ func NewTest(t *testing.T) *T {
2931
image: fakeimageClient,
3032
route: fakerouteClient,
3133
ray: fakerayClient,
34+
kueue: fakekueueClient,
3235
dynamic: fakedynamicClient,
3336
}
3437
return test

support/kueue.go

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/*
2+
Copyright 2024.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package support
18+
19+
import (
20+
"github.com/onsi/gomega"
21+
22+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
kueuev1beta1 "sigs.k8s.io/kueue/apis/kueue/v1beta1"
24+
)
25+
26+
func CreateKueueResourceFlavor(t Test, resourceFlavorSpec kueuev1beta1.ResourceFlavorSpec) *kueuev1beta1.ResourceFlavor {
27+
t.T().Helper()
28+
29+
resourceFlavor := &kueuev1beta1.ResourceFlavor{
30+
TypeMeta: metav1.TypeMeta{
31+
APIVersion: kueuev1beta1.SchemeGroupVersion.String(),
32+
Kind: "ResourceFlavor",
33+
},
34+
ObjectMeta: metav1.ObjectMeta{
35+
GenerateName: "rf-",
36+
},
37+
Spec: resourceFlavorSpec,
38+
}
39+
40+
resourceFlavor, err := t.Client().Kueue().KueueV1beta1().ResourceFlavors().Create(t.Ctx(), resourceFlavor, metav1.CreateOptions{})
41+
t.Expect(err).NotTo(gomega.HaveOccurred())
42+
t.T().Logf("Created Kueue ResourceFlavor %s successfully", resourceFlavor.Name)
43+
44+
return resourceFlavor
45+
}
46+
47+
func CreateKueueClusterQueue(t Test, clusterQueueSpec kueuev1beta1.ClusterQueueSpec) *kueuev1beta1.ClusterQueue {
48+
t.T().Helper()
49+
50+
clusterQueue := &kueuev1beta1.ClusterQueue{
51+
TypeMeta: metav1.TypeMeta{
52+
APIVersion: kueuev1beta1.SchemeGroupVersion.String(),
53+
Kind: "ClusterQueue",
54+
},
55+
ObjectMeta: metav1.ObjectMeta{
56+
GenerateName: "cq-",
57+
},
58+
Spec: clusterQueueSpec,
59+
}
60+
61+
clusterQueue, err := t.Client().Kueue().KueueV1beta1().ClusterQueues().Create(t.Ctx(), clusterQueue, metav1.CreateOptions{})
62+
t.Expect(err).NotTo(gomega.HaveOccurred())
63+
t.T().Logf("Created Kueue ClusterQueue %s successfully", clusterQueue.Name)
64+
65+
return clusterQueue
66+
}
67+
68+
func CreateKueueLocalQueue(t Test, namespace, clusterQueueName string) *kueuev1beta1.LocalQueue {
69+
t.T().Helper()
70+
71+
localQueue := &kueuev1beta1.LocalQueue{
72+
TypeMeta: metav1.TypeMeta{
73+
APIVersion: kueuev1beta1.SchemeGroupVersion.String(),
74+
Kind: "LocalQueue",
75+
},
76+
ObjectMeta: metav1.ObjectMeta{
77+
GenerateName: "lq-",
78+
Namespace: namespace,
79+
},
80+
Spec: kueuev1beta1.LocalQueueSpec{
81+
ClusterQueue: kueuev1beta1.ClusterQueueReference(clusterQueueName),
82+
},
83+
}
84+
85+
localQueue, err := t.Client().Kueue().KueueV1beta1().LocalQueues(namespace).Create(t.Ctx(), localQueue, metav1.CreateOptions{})
86+
t.Expect(err).NotTo(gomega.HaveOccurred())
87+
t.T().Logf("Created Kueue LocalQueue %s/%s successfully", localQueue.Namespace, localQueue.Name)
88+
89+
return localQueue
90+
}

support/kueue_test.go

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
Copyright 2024.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package support
18+
19+
import (
20+
"testing"
21+
22+
"github.com/onsi/gomega"
23+
24+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25+
kueuev1beta1 "sigs.k8s.io/kueue/apis/kueue/v1beta1"
26+
)
27+
28+
func TestCreateKueueResourceFlavor(t *testing.T) {
29+
test := NewTest(t)
30+
31+
rfSpec := kueuev1beta1.ResourceFlavorSpec{}
32+
33+
rf := CreateKueueResourceFlavor(test, rfSpec)
34+
35+
test.Expect(rf).To(gomega.Not(gomega.BeNil()))
36+
test.Expect(rf.GenerateName).To(gomega.Equal("rf-"))
37+
}
38+
39+
func TestCreateKueueClusterQueue(t *testing.T) {
40+
test := NewTest(t)
41+
42+
cqSpec := kueuev1beta1.ClusterQueueSpec{
43+
NamespaceSelector: &metav1.LabelSelector{},
44+
}
45+
46+
cq := CreateKueueClusterQueue(test, cqSpec)
47+
48+
test.Expect(cq).To(gomega.Not(gomega.BeNil()))
49+
test.Expect(cq.GenerateName).To(gomega.Equal("cq-"))
50+
}
51+
52+
func TestCreateKueueLocalQueue(t *testing.T) {
53+
test := NewTest(t)
54+
55+
lq := CreateKueueLocalQueue(test, "ns-1", "cq-1")
56+
57+
test.Expect(lq).To(gomega.Not(gomega.BeNil()))
58+
test.Expect(lq.GenerateName).To(gomega.Equal("lq-"))
59+
test.Expect(lq.Namespace).To(gomega.Equal("ns-1"))
60+
test.Expect(lq.Spec.ClusterQueue).To(gomega.Equal(kueuev1beta1.ClusterQueueReference("cq-1")))
61+
}

0 commit comments

Comments
 (0)