As we get closer to releasing the RC1 of Nova for Juno, I’ve started collecting a list of all the blueprints we implemented in Juno. This was mostly done because it helps me write the release notes, but I am posting it here because I am sure that others will find it handy too.
Process
- Reserve 10 sql schema version numbers for back ports of Juno migrations to Icehouse. launchpad specification
Ongoing behind the scenes work
Object conversion
- Convert the compute manager to use nova objects. launchpad specification
- Convert EC2 API to use nova objects. launchpad specification
- Start converting hypervisor drivers to use objects. launchpad specification
Scheduler
- Support sub-classing objects. launchpad specification
- Stop using the scheduler run_instance method. Previously the scheduler would select a host, and then boot the instance. Instead, let the scheduler select hosts, but then return those so the caller boots the instance. This will make it easier to move the scheduler to being a generic service instead of being internal to nova. launchpad specification
- Refactor the nova scheduler into being a library. This will make splitting the scheduler out into its own service later easier. launchpad specification
- Move nova to using the v2 cinder API. launchpad specification
- Move prep_resize to conductor in preparation for splitting out the scheduler. launchpad specification
API
- Use JSON schema to strongly validate v3 API request bodies. Please note this work will later be released as v2.1 of the Nova API. launchpad specification
- Provide a standard format for the output of the VM diagnostics call. This work will be exposed by a later version of the v2.1 API. launchpad specification
- Move to the OpenStack standard name for the request id header, in a backward compatible manner. launchpad specification
- Implement the v2.1 API on the V3 API code base. This work is not yet complete. launchpad specification
Other
- Refactor the internal nova API to make the nova-network and neutron implementations more consistent. launchpad specification
General features
Instance features
- Allow users to specify an image to use for rescue instead of the original base image. launchpad specification
- Allow images to specify if a config drive should be used. launchpad specification
- Give users and administrators the ability to control the vCPU topology exposed to guests via flavors. launchpad specification
- Attach All Local Disks During Rescue. launchpad specification
Networking
- Improve the nova-network code to allow per-network settings. launchpad specification
- Allow deployers to add hooks which are informed as soon as networking information for an instance is changed. launchpad specification
- Enable nova instances to be booted up with SR-IOV neutron ports. launchpad specification
- Permit VMs to attach multiple interfaces to one network. launchpad specification
Scheduling
- Extensible Resource Tracking. The set of resources tracked by nova is hard coded, this change makes that extensible, which will allow plug-ins to track new types of resources for scheduling. launchpad specification
- Allow a host to be evacuated, but with the scheduler selecting destination hosts for the instances moved. launchpad specification
- Add support for host aggregates to scheduler filters. launchpad: disk; instances; and IO ops specification
Other
- i18n Enablement for Nova, turn on the lazy translation support from Oslo i18n and updating Nova to adhere to the restrictions this adds to translatable strings. launchpad specification
- Offload periodic task sql query load to a slave sql server if one is configured. launchpad specification
- Only update the status of a host in the sql database when the status changes, instead of every 60 seconds. launchpad specification
- Include status information in API listings of hypervisor hosts. launchpad specification
- Allow API callers to specify more than one status to filter by when listing services. launchpad specification
- Add quota values to constrain the number and size of server groups a users can create. launchpad specification
Hypervisor driver specific
Hyper-V
- Support for differencing vhdx images. launchpad specification
- Support for console serial logs. launchpad specification
- Support soft reboot. launchpad specification
Ironic
- Add a virt driver for Ironic. launchpad specification
libvirt
- Performance improvements to listing instances on modern libvirts. launchpad specification
- Allow snapshots of network backed disks. launchpad specification
- Enable qemu memory balloon statistics for ceilometer reporting. launchpad specification
- Add support for handing back unused disk blocks to the underlying storage system. launchpad specification
- Meta-data about an instance is now recorded in the libvirt domain XML. This is intended to help administrators while debugging problems. launchpad specification
- Support namespaces for LXC containers. launchpad specification
- Copy-on-write cloning for RBD-backed disks. launchpad specification
- Expose interactive serial consoles. launchpad specification
- Allow controlled shutdown of guest operating systems during VM power off. launchpad specification
- Intelligent NUMA node placement for guests. launchpad specification
vmware
- Move the vmware driver to using the oslo vmware helper library. launchpad specification
- Add support for network interface hot plugging to vmware. launchpad specification
- Refactor the vmware driver’s spawn functionality to be more maintainable. This work was internal, but is mentioned here because it significantly improves the supportability of the VMWare driver. launchpad specification