Octavia v0.5 master component design document

Problem description

We need to define the various components that will make up Octavia v0.5.

Proposed change

This is the first functional release of Octavia, incorporating a scalable service delivery layer, but not yet concerned with a scalable command and control layer.

See doc/source/design/version0.5 for a detailed description of the v0.5 component design.

Alternatives

We’re open to suggestions, but note that later designs already discussed on the mailing list will incorporate several features of this design.

Data model impact

Octavia 0.5 introduces the main data model which will also be used in subsequent releases.

REST API impact

None

Security impact

The only sensitive data used in Octavia 0.5 are the TLS private keys used with TERMINATED_HTTPS functionality. However, the back-end storage aspect of these secrets will be handled by Barbican.

Octavia amphorae will also need to keep copies of these secrets locally in order to facilitate seamless service restarts. These local stores should be made on a memory filesystem.

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

Operator API and UI may need to be changed as a result of this specification.

Developer impact

None beyond implementing the spec. :)

Implementation

Assignee(s)

Lots of us will be working on this!

Work Items

Again, lots of things to be done here.

Dependencies

Barbican

Testing

A lot of new tests will need to be written to test the separate components, their interfaces, and likely failure scenarios.

Documentation Impact

This specification largely defines the documentation of the component design.

Component design is becoming a part of the project standard documentation.

References

Mailing list discussion of similar designs earlier this year