@@ -20,6 +20,7 @@ import (
2020 goctx "context"
2121 b64 "encoding/base64"
2222 "fmt"
23+ "go.uber.org/multierr"
2324 "net/http"
2425 "strings"
2526 "time"
@@ -422,14 +423,15 @@ func (r *IONOSCloudMachineReconciler) reconcileServer(ctx *context.MachineContex
422423
423424 err = r .reconcileFailoverGroups (ctx , server )
424425 if err != nil {
425- ctx .Logger .Info ( "failoverGroup not yet correct assigned" , "err" , err . Error () )
426+ ctx .Logger .Error ( err , "failoverGroup not yet correct assigned" )
426427 return & reconcile.Result {RequeueAfter : defaultMachineRetryIntervalOnBusy }, nil
427428 }
428429
429430 return nil , nil
430431}
431432
432433func (r * IONOSCloudMachineReconciler ) reconcileFailoverGroups (ctx * context.MachineContext , server ionoscloud.Server ) error {
434+ var errors error
433435 for i := range ctx .IONOSCloudCluster .Spec .Lans {
434436 lanSpec := & ctx .IONOSCloudCluster .Spec .Lans [i ]
435437 serverNic := serverNicByLan (server , lanSpec )
@@ -439,25 +441,25 @@ func (r *IONOSCloudMachineReconciler) reconcileFailoverGroups(ctx *context.Machi
439441 for k := range lanSpec .FailoverGroups {
440442 group := & lanSpec .FailoverGroups [k ]
441443 ctx .Logger .Info ("Reconciling failover group " + group .ID )
442-
443444 block , _ , err := ctx .IONOSClient .GetIPBlock (ctx , group .ID )
444445 if err != nil {
445- return err
446+ errors = multierr .Append (errors , err )
447+ continue
446448 }
447449 ips := * block .Properties .Ips
450+ err = ctx .IONOSClient .EnsureAdditionalIPsOnNic (ctx , ctx .IONOSCloudCluster .Spec .DataCenterID , ctx .IONOSCloudMachine .Spec .ProviderID , * serverNic .Id , ips )
451+ if err != nil {
452+ errors = multierr .Append (errors , err )
453+ }
448454 //TODO: only once per cluster and change if machine gets delete
449455 lanId := fmt .Sprint (* lanSpec .LanID )
450456 err = ctx .IONOSClient .EnsureFailoverIPsOnLan (ctx , ctx .IONOSCloudCluster .Spec .DataCenterID , lanId , * serverNic .Id , ips )
451457 if err != nil {
452- return err
453- }
454- err = ctx .IONOSClient .EnsureAdditionalIPsOnNic (ctx , ctx .IONOSCloudCluster .Spec .DataCenterID , ctx .IONOSCloudMachine .Spec .ProviderID , * serverNic .Id , ips )
455- if err != nil {
456- return err
458+ errors = multierr .Append (errors , err )
457459 }
458460 }
459461 }
460- return nil
462+ return errors
461463}
462464
463465func (r * IONOSCloudMachineReconciler ) reconcileLoadBalancerForwardingRule (ctx * context.MachineContext ) (* reconcile.Result , error ) {
0 commit comments