@@ -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