Skip to content

Commit 6ed8cd5

Browse files
committed
fix setting of interfaceGeneration
1 parent 07e673b commit 6ed8cd5

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

internal/controller/linodemachine_controller.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -553,10 +553,6 @@ func (r *LinodeMachineReconciler) reconcilePreflightMetadataSupportConfigure(ctx
553553
}
554554

555555
func (r *LinodeMachineReconciler) reconcilePreflightCreate(ctx context.Context, logger logr.Logger, machineScope *scope.MachineScope) (ctrl.Result, error) {
556-
// default to legacy interface generation if not set for now
557-
if machineScope.LinodeMachine.Spec.InterfaceGeneration == "" {
558-
machineScope.LinodeMachine.Spec.InterfaceGeneration = linodego.GenerationLegacyConfig
559-
}
560556
// get the bootstrap data for the Linode instance and set it for create config
561557
createOpts, err := newCreateConfig(ctx, machineScope, r.GzipCompressionEnabled, logger)
562558
if err != nil {

internal/controller/linodemachine_controller_helpers.go

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,20 @@ func retryIfTransient(err error, logger logr.Logger) (ctrl.Result, error) {
8181
}
8282

8383
func fillCreateConfig(createConfig *linodego.InstanceCreateOptions, machineScope *scope.MachineScope) {
84+
// This will only be empty if no interfaces or linodeInterfaces were specified in the LinodeMachine spec.
85+
// In that case we default to legacy interfaces.
86+
if createConfig.InterfaceGeneration == "" {
87+
createConfig.InterfaceGeneration = linodego.GenerationLegacyConfig
88+
}
8489
if machineScope.LinodeMachine.Spec.PrivateIP != nil {
8590
createConfig.PrivateIP = *machineScope.LinodeMachine.Spec.PrivateIP
8691
} else {
87-
if machineScope.LinodeMachine.Spec.LinodeInterfaces == nil && machineScope.LinodeMachine.Spec.InterfaceGeneration == linodego.GenerationLegacyConfig {
92+
if createConfig.InterfaceGeneration == linodego.GenerationLegacyConfig {
8893
// Supported only for legacy network interfaces.
8994
createConfig.PrivateIP = true
9095
} else {
9196
// Network Helper is not supported for the new network interfaces.
9297
createConfig.NetworkHelper = nil
93-
createConfig.InterfaceGeneration = linodego.GenerationLinode
9498
}
9599
}
96100

@@ -1040,18 +1044,19 @@ func constructLinodeInterfaceCreateOpts(createOpts []infrav1alpha2.LinodeInterfa
10401044
return linodeInterfaces
10411045
}
10421046

1043-
// for converting LinodeMachineSpec to linodego.InstanceCreateOptions. Any defaulting should be done in fillCreateConfig instead
1047+
// For converting LinodeMachineSpec to linodego.InstanceCreateOptions. Any defaulting should be done in fillCreateConfig instead
10441048
func linodeMachineSpecToInstanceCreateConfig(machineSpec infrav1alpha2.LinodeMachineSpec, machineTags []string) *linodego.InstanceCreateOptions {
10451049
instCreateOpts := &linodego.InstanceCreateOptions{
1046-
Region: machineSpec.Region,
1047-
Type: machineSpec.Type,
1048-
AuthorizedKeys: machineSpec.AuthorizedKeys,
1049-
AuthorizedUsers: machineSpec.AuthorizedUsers,
1050-
RootPass: machineSpec.RootPass,
1051-
Image: machineSpec.Image,
1052-
Tags: machineTags,
1053-
FirewallID: machineSpec.FirewallID,
1054-
DiskEncryption: linodego.InstanceDiskEncryption(machineSpec.DiskEncryption),
1050+
Region: machineSpec.Region,
1051+
Type: machineSpec.Type,
1052+
AuthorizedKeys: machineSpec.AuthorizedKeys,
1053+
AuthorizedUsers: machineSpec.AuthorizedUsers,
1054+
RootPass: machineSpec.RootPass,
1055+
Image: machineSpec.Image,
1056+
Tags: machineTags,
1057+
FirewallID: machineSpec.FirewallID,
1058+
InterfaceGeneration: machineSpec.InterfaceGeneration,
1059+
DiskEncryption: linodego.InstanceDiskEncryption(machineSpec.DiskEncryption),
10551060
}
10561061

10571062
if machineSpec.PrivateIP != nil {
@@ -1060,6 +1065,8 @@ func linodeMachineSpecToInstanceCreateConfig(machineSpec infrav1alpha2.LinodeMac
10601065

10611066
if len(machineSpec.LinodeInterfaces) > 0 {
10621067
instCreateOpts.LinodeInterfaces = constructLinodeInterfaceCreateOpts(machineSpec.LinodeInterfaces)
1068+
// If LinodeInterfaces are specified, the InterfaceGeneration must be GenerationLinode
1069+
instCreateOpts.InterfaceGeneration = linodego.GenerationLinode
10631070
} else if len(machineSpec.Interfaces) > 0 {
10641071
interfaces := make([]linodego.InstanceConfigInterfaceCreateOptions, len(machineSpec.Interfaces))
10651072
for idx, iface := range machineSpec.Interfaces {
@@ -1073,6 +1080,8 @@ func linodeMachineSpecToInstanceCreateConfig(machineSpec infrav1alpha2.LinodeMac
10731080
}
10741081
}
10751082
instCreateOpts.Interfaces = interfaces
1083+
// If Interfaces are specified, the InterfaceGeneration must be GenerationLegacyConfig
1084+
instCreateOpts.InterfaceGeneration = linodego.GenerationLegacyConfig
10761085
}
10771086

10781087
return instCreateOpts

0 commit comments

Comments
 (0)