@@ -119,6 +119,10 @@ func (r *RayClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request)
119119
120120 cluster := & rayv1.RayCluster {}
121121
122+ if err := deleteDeprecatedObjects (ctx , r , cluster ); err != nil {
123+ return ctrl.Result {RequeueAfter : requeueTime }, err
124+ }
125+
122126 if err := r .Get (ctx , req .NamespacedName , cluster ); err != nil {
123127 if ! errors .IsNotFound (err ) {
124128 logger .Error (err , "Error getting RayCluster resource" )
@@ -304,7 +308,7 @@ func isMTLSEnabled(cfg *config.KubeRayConfiguration) bool {
304308}
305309
306310func crbNameFromCluster (cluster * rayv1.RayCluster ) string {
307- return cluster .Name + "-" + cluster .Namespace + "-auth" // NOTE: potential naming conflicts ie {name: foo, ns: bar-baz} and {name: foo-bar, ns: baz}
311+ return getUniqueName ( cluster .Name + "-" + cluster .Namespace + "-auth" )
308312}
309313
310314func desiredOAuthClusterRoleBinding (cluster * rayv1.RayCluster ) * rbacv1ac.ClusterRoleBindingApplyConfiguration {
@@ -326,7 +330,7 @@ func desiredOAuthClusterRoleBinding(cluster *rayv1.RayCluster) *rbacv1ac.Cluster
326330}
327331
328332func oauthServiceAccountNameFromCluster (cluster * rayv1.RayCluster ) string {
329- return cluster .Name + "-oauth-proxy"
333+ return getUniqueName ( cluster .Name + "-oauth-proxy" )
330334}
331335
332336func desiredServiceAccount (cluster * rayv1.RayCluster ) * corev1ac.ServiceAccountApplyConfiguration {
@@ -363,11 +367,11 @@ func desiredClusterRoute(cluster *rayv1.RayCluster) *routev1ac.RouteApplyConfigu
363367}
364368
365369func oauthServiceNameFromCluster (cluster * rayv1.RayCluster ) string {
366- return cluster .Name + "-oauth"
370+ return getUniqueName ( cluster .Name + "-oauth" )
367371}
368372
369373func oauthServiceTLSSecretName (cluster * rayv1.RayCluster ) string {
370- return cluster .Name + "-proxy-tls-secret"
374+ return getUniqueName ( cluster .Name + "-proxy-tls-secret" )
371375}
372376
373377func desiredOAuthService (cluster * rayv1.RayCluster ) * corev1ac.ServiceApplyConfiguration {
@@ -389,7 +393,7 @@ func desiredOAuthService(cluster *rayv1.RayCluster) *corev1ac.ServiceApplyConfig
389393}
390394
391395func oauthSecretNameFromCluster (cluster * rayv1.RayCluster ) string {
392- return cluster .Name + "-oauth-config"
396+ return getUniqueName ( cluster .Name + "-oauth-config" )
393397}
394398
395399// desiredOAuthSecret defines the desired OAuth secret object
@@ -406,7 +410,7 @@ func desiredOAuthSecret(cluster *rayv1.RayCluster, cookieSalt string) *corev1ac.
406410}
407411
408412func caSecretNameFromCluster (cluster * rayv1.RayCluster ) string {
409- return "ca-secret-" + cluster .Name
413+ return getUniqueName ( "ca-secret-" + cluster .Name )
410414}
411415
412416func desiredCASecret (cluster * rayv1.RayCluster , key , cert []byte ) * corev1ac.SecretApplyConfiguration {
@@ -463,7 +467,9 @@ func generateCACertificate() ([]byte, []byte, error) {
463467}
464468
465469func desiredWorkersNetworkPolicy (cluster * rayv1.RayCluster ) * networkingv1ac.NetworkPolicyApplyConfiguration {
466- return networkingv1ac .NetworkPolicy (cluster .Name + "-workers" , cluster .Namespace ).
470+ return networkingv1ac .NetworkPolicy (
471+ getUniqueName (cluster .Name + "-workers" ), cluster .Namespace ,
472+ ).
467473 WithLabels (map [string ]string {RayClusterNameLabel : cluster .Name }).
468474 WithSpec (networkingv1ac .NetworkPolicySpec ().
469475 WithPodSelector (metav1ac .LabelSelector ().WithMatchLabels (map [string ]string {"ray.io/cluster" : cluster .Name , "ray.io/node-type" : "worker" })).
@@ -484,7 +490,7 @@ func desiredHeadNetworkPolicy(cluster *rayv1.RayCluster, cfg *config.KubeRayConf
484490 if ptr .Deref (cfg .MTLSEnabled , true ) {
485491 allSecuredPorts = append (allSecuredPorts , networkingv1ac .NetworkPolicyPort ().WithProtocol (corev1 .ProtocolTCP ).WithPort (intstr .FromInt (10001 )))
486492 }
487- return networkingv1ac .NetworkPolicy (cluster .Name + "-head" , cluster .Namespace ).
493+ return networkingv1ac .NetworkPolicy (getUniqueName ( cluster .Name + "-head" ) , cluster .Namespace ).
488494 WithLabels (map [string ]string {RayClusterNameLabel : cluster .Name }).
489495 WithSpec (networkingv1ac .NetworkPolicySpec ().
490496 WithPodSelector (metav1ac .LabelSelector ().WithMatchLabels (map [string ]string {"ray.io/cluster" : cluster .Name , "ray.io/node-type" : "head" })).
@@ -619,3 +625,45 @@ func (r *RayClusterReconciler) SetupWithManager(mgr ctrl.Manager) error {
619625
620626 return controller .Complete (r )
621627}
628+
629+ func deleteDeprecatedObjects (ctx context.Context , r * RayClusterReconciler , cluster * rayv1.RayCluster ) error {
630+ // Delete deprecated objects if they exist. These have all been replace by objects with names generated by
631+ // getUniqueName.
632+ if err := r .kubeClient .NetworkingV1 ().Ingresses (cluster .Namespace ).Delete (ctx , "rayclient-" + cluster .Name , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
633+ return err
634+ }
635+ if err := r .kubeClient .NetworkingV1 ().Ingresses (cluster .Namespace ).Delete (ctx , "ray-dashboard-" + cluster .Name , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
636+ return err
637+ }
638+ if err := r .routeClient .Routes (cluster .Namespace ).Delete (ctx , "rayclient-" + cluster .Name , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
639+ return err
640+ }
641+ if err := r .routeClient .Routes (cluster .Namespace ).Delete (ctx , "ray-dashboard-" + cluster .Name , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
642+ return err
643+ }
644+ if err := r .kubeClient .CoreV1 ().Secrets (cluster .Namespace ).Delete (ctx , cluster .Name + "-oauth-config" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
645+ return err
646+ }
647+ if err := r .kubeClient .CoreV1 ().Secrets (cluster .Namespace ).Delete (ctx , "ca-secret-" + cluster .Name , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
648+ return err
649+ }
650+ if err := r .kubeClient .CoreV1 ().ServiceAccounts (cluster .Namespace ).Delete (ctx , cluster .Name + "-oauth-proxy" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
651+ return err
652+ }
653+ if err := r .kubeClient .RbacV1 ().ClusterRoleBindings ().Delete (ctx , cluster .Name + "-" + cluster .Namespace + "-auth" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
654+ return err
655+ }
656+ if err := r .kubeClient .CoreV1 ().Services (cluster .Namespace ).Delete (ctx , cluster .Name + "-oauth" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
657+ return err
658+ }
659+ if err := r .kubeClient .CoreV1 ().Secrets (cluster .Namespace ).Delete (ctx , cluster .Name + "-proxy-tls-secret" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
660+ return err
661+ }
662+ if err := r .kubeClient .NetworkingV1 ().NetworkPolicies (cluster .Namespace ).Delete (ctx , cluster .Name + "-workers" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
663+ return err
664+ }
665+ if err := r .kubeClient .NetworkingV1 ().NetworkPolicies (cluster .Namespace ).Delete (ctx , cluster .Name + "-head" , metav1.DeleteOptions {}); err != nil && ! errors .IsNotFound (err ) {
666+ return err
667+ }
668+ return nil
669+ }
0 commit comments