...
- Currently planning to do it for Vmware. Support for other HVs can also be added based on HV capabilities.
...
A new command class needs to be defined introduced for actually changing CPU/RAM at agent layer. This needs to be handled for the supported HVs.
...
upgradeVirtualMachine - This is an existing API and take vm_id and compute_offering_id as inputs. This is a sync call currently and will be modified to async (breaking change but I feel should be fine). For system VMs the same API can be used but proper access checks would be done. In case of a migration this will internally use the migrateVirtualMachine API logic.
createServiceOffering - boolean flag indicating if dynamic scale up of CPU/RAM is allowed (see open issue# 1issue#1)
TBD
1. Should VMs be always marked for dynamic scaling? If so should this be a VM property or part of compute offering? Should dynamic scaling be treated as premium service, in that case having it in compute offering makes more sense from usage/billing perspective?
...
3. There is also an option of having a custom compute offering where user can specify values for CPU and RAM during deployment or scaling up. But am not sure if this option can be misused since this is a user level API. Another complexity is to capture usage.
TBD
Appendix A:
Appendix B: