@@ -270,8 +270,16 @@ func (r *RayClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request)
270
270
// - First try to get the ODH / RHOAI application namespace from the DSCInitialization
271
271
// - Or fallback to the well-known defaults
272
272
// add check if running on openshift or vanilla kubernetes
273
+ kubeRayNamespace , err := r .getKubeRayOperatorNamespace (ctx )
274
+ if err != nil {
275
+ logger .Error (err , "Failed to get KubeRay operator namespace" )
276
+
277
+ return ctrl.Result {RequeueAfter : requeueTime }, err
278
+ }
279
+ logger .Info ("Detected KubeRay operator namespace" , "namespace" , kubeRayNamespace )
280
+
273
281
var kubeRayNamespaces []string
274
- kubeRayNamespaces = []string {kubeRayDefaultNamespace }
282
+ kubeRayNamespaces = []string {kubeRayNamespace }
275
283
276
284
if r .IsOpenShift {
277
285
dsci := & dsciv1.DSCInitialization {}
@@ -287,7 +295,7 @@ func (r *RayClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request)
287
295
288
296
}
289
297
290
- _ , err : = r .kubeClient .NetworkingV1 ().NetworkPolicies (cluster .Namespace ).Apply (ctx , desiredHeadNetworkPolicy (cluster , r .Config , kubeRayNamespaces ), metav1.ApplyOptions {FieldManager : controllerName , Force : true })
298
+ _ , err = r .kubeClient .NetworkingV1 ().NetworkPolicies (cluster .Namespace ).Apply (ctx , desiredHeadNetworkPolicy (cluster , r .Config , kubeRayNamespaces ), metav1.ApplyOptions {FieldManager : controllerName , Force : true })
291
299
if err != nil {
292
300
logger .Error (err , "Failed to update NetworkPolicy" )
293
301
}
@@ -319,6 +327,32 @@ func isMTLSEnabled(cfg *config.KubeRayConfiguration) bool {
319
327
return cfg == nil || ptr .Deref (cfg .MTLSEnabled , true )
320
328
}
321
329
330
+ // getKubeRayOperatorNamespace tries to get the namespace of the KubeRay operator
331
+ func (r * RayClusterReconciler ) getKubeRayOperatorNamespace (ctx context.Context ) (string , error ) {
332
+ logger := ctrl .LoggerFrom (ctx )
333
+
334
+ pods , err := r .kubeClient .CoreV1 ().Pods ("" ).List (context .TODO (), metav1.ListOptions {
335
+ LabelSelector : "app.kubernetes.io/component=kuberay-operator" ,
336
+ })
337
+ if err != nil {
338
+ logger .Error (err , "failed to get kuberay-operator namespace" )
339
+
340
+ return kubeRayDefaultNamespace , err
341
+ }
342
+
343
+ if len (pods .Items ) == 0 {
344
+ logger .Info (
345
+ "No kuberay-operator pods found, using default kuberay-operator namespace" ,
346
+ "namespace" ,
347
+ kubeRayDefaultNamespace ,
348
+ )
349
+
350
+ return kubeRayDefaultNamespace , nil
351
+ }
352
+
353
+ return pods .Items [0 ].Namespace , nil
354
+ }
355
+
322
356
func isRayClusterSuspended (cluster * rayv1.RayCluster ) bool {
323
357
return cluster .Spec .Suspend != nil && ptr .Deref (cluster .Spec .Suspend , false )
324
358
}
@@ -549,8 +583,8 @@ func desiredHeadNetworkPolicy(cluster *rayv1.RayCluster, cfg *config.KubeRayConf
549
583
),
550
584
networkingv1ac .NetworkPolicyIngressRule ().
551
585
WithPorts (
552
- networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (10001 )),
553
- networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (8265 )),
586
+ networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt32 (10001 )),
587
+ networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt32 (8265 )),
554
588
).WithFrom (
555
589
networkingv1ac .NetworkPolicyPeer ().WithPodSelector (metav1ac .LabelSelector ()),
556
590
),
@@ -564,12 +598,12 @@ func desiredHeadNetworkPolicy(cluster *rayv1.RayCluster, cfg *config.KubeRayConf
564
598
WithOperator (metav1 .LabelSelectorOpIn ).
565
599
WithValues (kubeRayNamespaces ... )))).
566
600
WithPorts (
567
- networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (8265 )),
568
- networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (10001 )),
601
+ networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt32 (8265 )),
602
+ networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt32 (10001 )),
569
603
),
570
604
networkingv1ac .NetworkPolicyIngressRule ().
571
605
WithPorts (
572
- networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (8080 )),
606
+ networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt32 (8080 )),
573
607
).
574
608
WithFrom (
575
609
networkingv1ac .NetworkPolicyPeer ().WithNamespaceSelector (metav1ac .LabelSelector ().
0 commit comments