@@ -785,11 +785,32 @@ func (r *LinodeMachineReconciler) reconcileUpdate(ctx context.Context, logger lo
785785}
786786
787787func  (r  * LinodeMachineReconciler ) reconcileFirewallID (ctx  context.Context , logger  logr.Logger , machineScope  * scope.MachineScope , instanceID  int ) (ctrl.Result , error ) {
788- 	// get the instance's firewalls 
789- 	firewalls , err  :=  machineScope .LinodeClient .ListInstanceFirewalls (ctx , instanceID , nil )
790- 	if  err  !=  nil  {
791- 		logger .Error (err , "Failed to list firewalls for Linode instance" )
792- 		return  ctrl.Result {RequeueAfter : reconciler .DefaultMachineControllerWaitForRunningDelay }, nil 
788+ 	var  (
789+ 		firewalls  []linodego.Firewall 
790+ 		err        error 
791+ 	)
792+ 	// Get the instance's firewalls normally if this is not using the new linode interfaces, 
793+ 	// otherwise we have to get firewalls per linode interface 
794+ 	if  machineScope .LinodeMachine .Spec .InterfaceGeneration  ==  linodego .GenerationLegacyConfig  {
795+ 		firewalls , err  =  machineScope .LinodeClient .ListInstanceFirewalls (ctx , instanceID , nil )
796+ 		if  err  !=  nil  {
797+ 			logger .Error (err , "Failed to list firewalls for Linode instance" )
798+ 			return  ctrl.Result {RequeueAfter : reconciler .DefaultMachineControllerWaitForRunningDelay }, nil 
799+ 		}
800+ 	} else  {
801+ 		interfaces , err  :=  machineScope .LinodeClient .ListInterfaces (ctx , instanceID , nil )
802+ 		if  err  !=  nil  {
803+ 			logger .Error (err , "Failed to list interfaces for Linode instance" )
804+ 			return  ctrl.Result {RequeueAfter : reconciler .DefaultMachineControllerWaitForRunningDelay }, nil 
805+ 		}
806+ 		for  _ , iface  :=  range  interfaces  {
807+ 			ifaceFWs , err  :=  machineScope .LinodeClient .ListInterfaceFirewalls (ctx , instanceID , iface .ID , nil )
808+ 			if  err  !=  nil  {
809+ 				logger .Error (err , "Failed to list firewalls for Linode instance interface" , "interfaceID" , iface .ID )
810+ 				return  ctrl.Result {RequeueAfter : reconciler .DefaultMachineControllerWaitForRunningDelay }, nil 
811+ 			}
812+ 			firewalls  =  append (firewalls , ifaceFWs ... )
813+ 		}
793814	}
794815
795816	attachedFWIDs  :=  make ([]int , 0 , len (firewalls ))
0 commit comments