In short: When ScalingConfig is used to define global defaults, all required fields should be required. But when it's used to define the configuration for a VM, the "required" fields should actually be optional!
This change should allow the control plane to granularly specify only some scaling settings, while using the defaults for all others. That will make it easier to add fields to ScalingConfig (and have them actually used, at least), and reduce "spooky action at a distance" in the system.
Extracted from #895, thought it might be simpler/easier to handle separately.
In short: When ScalingConfig is used to define global defaults, all required fields should be required. But when it's used to define the configuration for a VM, the "required" fields should actually be optional!
This change should allow the control plane to granularly specify only some scaling settings, while using the defaults for all others. That will make it easier to add fields to ScalingConfig (and have them actually used, at least), and reduce "spooky action at a distance" in the system.
Extracted from #895, thought it might be simpler/easier to handle separately.