diff --git a/pkg/cloud/aws/actuators/machine/actuator.go b/pkg/cloud/aws/actuators/machine/actuator.go index 8d48fc37fa..fb79a63107 100644 --- a/pkg/cloud/aws/actuators/machine/actuator.go +++ b/pkg/cloud/aws/actuators/machine/actuator.go @@ -306,7 +306,7 @@ func (a *Actuator) isMachineOutdated(machineSpec *v1alpha1.AWSMachineProviderSpe } // Root Device Size - if machineSpec.RootDeviceSize != instance.RootDeviceSize { + if machineSpec.RootDeviceSize > 0 && machineSpec.RootDeviceSize != instance.RootDeviceSize { errs = append(errs, errors.Errorf("Root volume size cannot be mutated from %v to %v", instance.RootDeviceSize, machineSpec.RootDeviceSize)) } diff --git a/pkg/cloud/aws/actuators/machine/actuator_test.go b/pkg/cloud/aws/actuators/machine/actuator_test.go index a57af0d002..14aee4427b 100644 --- a/pkg/cloud/aws/actuators/machine/actuator_test.go +++ b/pkg/cloud/aws/actuators/machine/actuator_test.go @@ -443,6 +443,15 @@ func TestImmutableStateChange(t *testing.T) { }, expected: 1, }, + { + name: "root device size is omitted", + machineSpec: v1alpha1.AWSMachineProviderSpec{}, + instance: v1alpha1.Instance{ + // All instances have a root device size, even when we don't set one + RootDeviceSize: 12, + }, + expected: 0, + }, { name: "root device size is unchanged", machineSpec: v1alpha1.AWSMachineProviderSpec{