Nova Compute Driver

Blueprint: https://blueprints.launchpad.net/octavia/+spec/nova-compute-driver

Octavia needs to interact with nova for creation of VMs for this version. This spec will flesh out all the methods described in the compute-driver-interface with nova VM specific commands.

Problem description

This spec details operations for creating, updating, and modifying amphora that will hold the actual load balancer. It will utilize the nova client python api version 3 for the nova specific requests and commands.

Proposed change

Expose nova operations

  • Build: Will need to build a virtual machine according to configuration parameters

    • Will leverage the nova client ServerManager method “create” to build a server

  • Get: Will need to retrieve details of the virtual machine from nova

    • Will leverage the nova client ServerManager method “get” to retrieve a server, and return an amphora object

  • Delete: Will need to remove a virtual machine

    • Will leverage the nova client ServerManager method “delete” for removal of server

  • Status: Will need to retrieve the status of the virtual machine

    • Will leverage the aforementioned get call to retrieve status of the server

Alternatives

None

Data model impact

Add fields to existing Amphora object

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

Will need a nova service account and necessary credentials stored in config

Implementation

Assignee(s)

trevor-vardeman

Work Items

Expose nova operations

Dependencies

compute-driver-interface

Testing

Unit tests Functional tests

Documentation Impact

None

References

https://blueprints.launchpad.net/octavia/+spec/nova-compute-driver https://docs.openstack.org/python-novaclient/latest/reference/api/index.html