@@ -649,12 +649,12 @@ func (r *ClusterDeploymentReconciler) releaseCluster(ctx context.Context, namesp
649
649
650
650
// Associate the provider with it's GVK
651
651
for _ , provider := range providers {
652
- gvk := providersloader .GetClusterGVK (provider )
653
- if ! gvk . Empty () {
652
+ gvks := providersloader .GetClusterGVKs (provider )
653
+ if len ( gvks ) == 0 {
654
654
continue
655
655
}
656
656
657
- cluster , err := r .getCluster (ctx , namespace , name , gvk )
657
+ cluster , err := r .getCluster (ctx , namespace , name , gvks ... )
658
658
if err != nil {
659
659
if provider == "aws" && apierrors .IsNotFound (err ) {
660
660
return nil
@@ -665,7 +665,7 @@ func (r *ClusterDeploymentReconciler) releaseCluster(ctx context.Context, namesp
665
665
666
666
found , err := r .objectsAvailable (ctx , namespace , cluster .Name , gvkMachine )
667
667
if err != nil {
668
- return err
668
+ continue
669
669
}
670
670
671
671
if ! found {
@@ -697,21 +697,25 @@ func (r *ClusterDeploymentReconciler) getInfraProvidersNames(ctx context.Context
697
697
return ips [:len (ips ):len (ips )], nil
698
698
}
699
699
700
- func (r * ClusterDeploymentReconciler ) getCluster (ctx context.Context , namespace , name string , gvk schema.GroupVersionKind ) (* metav1.PartialObjectMetadata , error ) {
701
- opts := & client.ListOptions {
702
- LabelSelector : labels .SelectorFromSet (map [string ]string {kcm .FluxHelmChartNameKey : name }),
703
- Namespace : namespace ,
704
- }
705
- itemsList := & metav1.PartialObjectMetadataList {}
706
- itemsList .SetGroupVersionKind (gvk )
707
- if err := r .Client .List (ctx , itemsList , opts ); err != nil {
708
- return nil , err
709
- }
710
- if len (itemsList .Items ) == 0 {
711
- return nil , fmt .Errorf ("%s with name %s was not found" , gvk .Kind , name )
700
+ func (r * ClusterDeploymentReconciler ) getCluster (ctx context.Context , namespace , name string , gvks ... schema.GroupVersionKind ) (* metav1.PartialObjectMetadata , error ) {
701
+ for _ , gvk := range gvks {
702
+ opts := & client.ListOptions {
703
+ LabelSelector : labels .SelectorFromSet (map [string ]string {kcm .FluxHelmChartNameKey : name }),
704
+ Namespace : namespace ,
705
+ }
706
+ itemsList := & metav1.PartialObjectMetadataList {}
707
+ itemsList .SetGroupVersionKind (gvk )
708
+
709
+ if err := r .Client .List (ctx , itemsList , opts ); err != nil {
710
+ return nil , fmt .Errorf ("failed to list %s in namespace %s: %w" , gvk .Kind , namespace , err )
711
+ }
712
+
713
+ if len (itemsList .Items ) > 0 {
714
+ return & itemsList .Items [0 ], nil
715
+ }
712
716
}
713
717
714
- return & itemsList . Items [ 0 ], nil
718
+ return nil , fmt . Errorf ( "no cluster found with name %s in namespace %s for any of the provided GroupVersionKinds" , name , namespace )
715
719
}
716
720
717
721
func (r * ClusterDeploymentReconciler ) removeClusterFinalizer (ctx context.Context , cluster * metav1.PartialObjectMetadata ) error {
0 commit comments