Skip to content

Commit c00e58b

Browse files
Setup fakeClient to RayCluster_Webhook_Test
1 parent 1ba3eb2 commit c00e58b

File tree

2 files changed

+31
-13
lines changed

2 files changed

+31
-13
lines changed

pkg/controllers/raycluster_webhook_test.go

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,43 @@ import (
2626
corev1 "k8s.io/api/core/v1"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/apimachinery/pkg/runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/client"
30+
"sigs.k8s.io/controller-runtime/pkg/client/fake"
2931

3032
"github.com/project-codeflare/codeflare-operator/pkg/config"
3133
)
3234

3335
var (
34-
namespace = "test-namespace"
36+
mockNamespace = &corev1.Namespace{
37+
ObjectMeta: metav1.ObjectMeta{
38+
Name: "test-namespace",
39+
Labels: map[string]string{
40+
"pod-security.kubernetes.io/enforce": "restricted",
41+
"pod-security.kubernetes.io/enforce-version": "v1.24",
42+
},
43+
},
44+
}
3545
rayClusterName = "test-raycluster"
3646

3747
rcWebhook = &rayClusterWebhook{
3848
Config: &config.KubeRayConfiguration{},
49+
Client: setupFakeClient(),
3950
}
4051
)
4152

53+
func setupFakeClient() client.Client {
54+
scheme := runtime.NewScheme()
55+
corev1.AddToScheme(scheme)
56+
return fake.NewClientBuilder().WithScheme(scheme).WithObjects(mockNamespace).Build()
57+
}
58+
4259
func TestRayClusterWebhookDefault(t *testing.T) {
4360
test := support.NewTest(t)
4461

4562
validRayCluster := &rayv1.RayCluster{
4663
ObjectMeta: metav1.ObjectMeta{
4764
Name: rayClusterName,
48-
Namespace: namespace,
65+
Namespace: mockNamespace.Name,
4966
},
5067
Spec: rayv1.RayClusterSpec{
5168
HeadGroupSpec: rayv1.HeadGroupSpec{
@@ -88,7 +105,7 @@ func TestRayClusterWebhookDefault(t *testing.T) {
88105
}
89106

90107
// Create the RayClusters
91-
if _, err := test.Client().Ray().RayV1().RayClusters(namespace).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
108+
if _, err := test.Client().Ray().RayV1().RayClusters(mockNamespace.Name).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
92109
test.T().Fatalf("Failed to create RayCluster: %v", err)
93110
}
94111

@@ -234,7 +251,7 @@ func TestValidateCreate(t *testing.T) {
234251
validRayCluster := &rayv1.RayCluster{
235252
ObjectMeta: metav1.ObjectMeta{
236253
Name: rayClusterName,
237-
Namespace: namespace,
254+
Namespace: mockNamespace.Name,
238255
},
239256
Spec: rayv1.RayClusterSpec{
240257
HeadGroupSpec: rayv1.HeadGroupSpec{
@@ -268,7 +285,7 @@ func TestValidateCreate(t *testing.T) {
268285
"--tls-cert=/etc/tls/private/tls.crt",
269286
"--tls-key=/etc/tls/private/tls.key",
270287
"--cookie-secret=$(COOKIE_SECRET)",
271-
"--openshift-delegate-urls={\"/\":{\"resource\":\"pods\",\"namespace\":\"" + namespace + "\",\"verb\":\"get\"}}",
288+
"--openshift-delegate-urls={\"/\":{\"resource\":\"pods\",\"namespace\":\"" + mockNamespace.Name + "\",\"verb\":\"get\"}}",
272289
},
273290
VolumeMounts: []corev1.VolumeMount{
274291
{
@@ -298,7 +315,7 @@ func TestValidateCreate(t *testing.T) {
298315
}
299316

300317
// Create the RayClusters
301-
if _, err := test.Client().Ray().RayV1().RayClusters(namespace).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
318+
if _, err := test.Client().Ray().RayV1().RayClusters(mockNamespace.Name).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
302319
test.T().Fatalf("Failed to create RayCluster: %v", err)
303320
}
304321

@@ -354,7 +371,7 @@ func TestValidateUpdate(t *testing.T) {
354371
validRayCluster := &rayv1.RayCluster{
355372
ObjectMeta: metav1.ObjectMeta{
356373
Name: rayClusterName,
357-
Namespace: namespace,
374+
Namespace: mockNamespace.Name,
358375
},
359376
Spec: rayv1.RayClusterSpec{
360377
HeadGroupSpec: rayv1.HeadGroupSpec{
@@ -400,7 +417,7 @@ func TestValidateUpdate(t *testing.T) {
400417
"--tls-cert=/etc/tls/private/tls.crt",
401418
"--tls-key=/etc/tls/private/tls.key",
402419
"--cookie-secret=$(COOKIE_SECRET)",
403-
"--openshift-delegate-urls={\"/\":{\"resource\":\"pods\",\"namespace\":\"" + namespace + "\",\"verb\":\"get\"}}",
420+
"--openshift-delegate-urls={\"/\":{\"resource\":\"pods\",\"namespace\":\"" + mockNamespace.Name + "\",\"verb\":\"get\"}}",
404421
},
405422
VolumeMounts: []corev1.VolumeMount{
406423
{
@@ -418,7 +435,7 @@ func TestValidateUpdate(t *testing.T) {
418435
Command: []string{
419436
"sh",
420437
"-c",
421-
`cd /home/ray/workspace/tls && openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr -subj '/CN=ray-head' && printf "authorityKeyIdentifier=keyid,issuer\nbasicConstraints=CA:FALSE\nsubjectAltName = @alt_names\n[alt_names]\nDNS.1 = 127.0.0.1\nDNS.2 = localhost\nDNS.3 = ${FQ_RAY_IP}\nDNS.4 = $(awk 'END{print $1}' /etc/hosts)\nDNS.5 = rayclient-` + rayClusterName + `-` + namespace + `.\nDNS.6 = ` + rayClusterName + `-head-svc.` + namespace + `.svc` + `">./domain.ext && cp /home/ray/workspace/ca/* . && openssl x509 -req -CA ca.crt -CAkey ca.key -in server.csr -out server.crt -days 365 -CAcreateserial -extfile domain.ext`,
438+
`cd /home/ray/workspace/tls && openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr -subj '/CN=ray-head' && printf "authorityKeyIdentifier=keyid,issuer\nbasicConstraints=CA:FALSE\nsubjectAltName = @alt_names\n[alt_names]\nDNS.1 = 127.0.0.1\nDNS.2 = localhost\nDNS.3 = ${FQ_RAY_IP}\nDNS.4 = $(awk 'END{print $1}' /etc/hosts)\nDNS.5 = rayclient-` + rayClusterName + `-` + mockNamespace.Name + `.\nDNS.6 = ` + rayClusterName + `-head-svc.` + mockNamespace.Name + `.svc` + `">./domain.ext && cp /home/ray/workspace/ca/* . && openssl x509 -req -CA ca.crt -CAkey ca.key -in server.csr -out server.crt -days 365 -CAcreateserial -extfile domain.ext`,
422439
},
423440
VolumeMounts: []corev1.VolumeMount{
424441
{
@@ -524,7 +541,7 @@ func TestValidateUpdate(t *testing.T) {
524541
}
525542

526543
// Create the RayClusters
527-
if _, err := test.Client().Ray().RayV1().RayClusters(namespace).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
544+
if _, err := test.Client().Ray().RayV1().RayClusters(mockNamespace.Name).Create(test.Ctx(), validRayCluster, metav1.CreateOptions{}); err != nil {
528545
test.T().Fatalf("Failed to create RayCluster: %v", err)
529546
}
530547

pkg/controllers/support.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,14 @@ func withEnvVarName(name string) compare[corev1.EnvVar] {
162162
}
163163

164164
func namespaceHasSecurityLabels(ctx context.Context, kubeClient client.Client, namespaceName string) (bool, error) {
165-
namespace := &corev1.Namespace{}
166-
if err := kubeClient.Get(ctx, client.ObjectKey{Name: namespaceName}, namespace); err != nil {
165+
obj := &corev1.Namespace{}
166+
err := kubeClient.Get(ctx, client.ObjectKey{Name: namespaceName}, obj)
167+
if err != nil {
167168
return false, err
168169
}
169170
labelSelector := labels.SelectorFromSet(labels.Set{
170171
"pod-security.kubernetes.io/enforce": "restricted",
171172
"pod-security.kubernetes.io/enforce-version": "v1.24",
172173
})
173-
return labelSelector.Matches(labels.Set(namespace.Labels)), nil
174+
return labelSelector.Matches(labels.Set(obj.Labels)), nil
174175
}

0 commit comments

Comments
 (0)