diff --git a/README b/README index 36643fc7..4eb8823e 100644 --- a/README +++ b/README @@ -21,6 +21,15 @@ Tools a Gearman job server to create/modify load balancers on the local machine. + * libra_api + + Python daemon to act as the client API server. + + * libra_admin_api + + Python daemon providing an admininstrative API server primarily for + libra_pool_mgm and libra_statsd + Running Tests ------------- diff --git a/doc/admin_api/config.rst b/doc/admin_api/config.rst index eab48f37..ca66f76f 100644 --- a/doc/admin_api/config.rst +++ b/doc/admin_api/config.rst @@ -1,5 +1,5 @@ -PI Configuration -================= +Admin API Configuration +======================= These options are specific to the Admin API in addition to the :doc:`common options `. diff --git a/doc/api/api.rst b/doc/api/api.rst index 8d7a27e0..74b310f1 100644 --- a/doc/api/api.rst +++ b/doc/api/api.rst @@ -1,10 +1,6 @@ Load Balancer as a Service (LBaaS) API Specification ==================================================== -**Date:** February 8, 2013 - -**Document Version:** 0.6 - 1. Overview ----------- @@ -1254,7 +1250,9 @@ None required. 13.5 Required HTTP Header Values ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -**X-Auth-Token** +- **X-Auth-Token** +- **Accept: application/json** +- **Content-Type: application/json** 13.6 Request Body ~~~~~~~~~~~~~~~~~ @@ -2278,13 +2276,13 @@ Features Currently Not Implemented or Supported The following features are not supported. -1. Node 'weight' values are not supported. +1. IPV6 address types are not supported. -2. IPV6 address types are not supported. +2. HTTPS protocol for load balancers are not supported. It is not + advertised in /protocols request. Instead TCP will be used for port 443 + and the HTTPS connections will be passed through the load balancer with no + termination at the load balancer. -3. HTTPS protocol for load balancers are not supported. It is not - advertised in /protocols request. - -4. The ability to list deleted load balancers is not supported. +3. The ability to list deleted load balancers is yet not supported. diff --git a/doc/conf.py b/doc/conf.py index 298fb925..834ac5f1 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -42,8 +42,8 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'LBaaS Worker and Pool Manager' -copyright = u'2012, Andrew Hutchings, David Shrewsbury' +project = u'Libra LBaaS Toolset' +copyright = u'2013, Hewlett-Packard Development Company, L.P.' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -190,8 +190,8 @@ htmlhelp_basename = 'LBaaSdoc' # (source start file, target name, title, author, # documentclass [howto/manual]). latex_documents = [ - ('index', 'Libra-{0}.tex'.format(version), u'Libra Client, Worker and Pool Manager Documentation', - u'Andrew Hutchings and David Shrewsbury', 'manual'), + ('index', 'Libra-{0}.tex'.format(version), u'Libra LBaaS Toolset Documentation', + u'Hewlett-Packard Development Company, L.P.', 'manual'), ] #pdf_documents = [('index', 'Libra-{0}'.format(version), u'Libra Client, Worker and Pool Manager Documentation', u'Andrew Hutchings and David Shrewsbury')] @@ -229,6 +229,6 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'lbaas', u'LBaaS Worker and Pool Manager', - [u'Andrew Hutchings and David Shrewsbury'], 1) + ('index', 'lbaas', u'Libra LBaaS Toolset', + [u'Hewlett-Packard Development Company, L.P.'], 1) ] diff --git a/doc/introduction.rst b/doc/introduction.rst index 6e064853..62d0d3ee 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -2,14 +2,16 @@ Introduction ============ Libra is a Load Balancer as a Service (LBaaS) system originally designed by -Hewlett-Packard Cloud Services. It consists of three of the core components +Hewlett-Packard Cloud Services. It consists of five core components required to get LBaaS working: * A node pool manager to keep a warm spare pool of load balancers ready * A node worker to asyncronusly communicate to the API server +* A monitoring system for the load balancers +* A customer API server +* An administrative API server -It does not (yet) include the API server itself or HAProxy. The API server is -based on the Atlas API system but communicates to the workers using gearman. +The API server is based on a modified version of the Atlas API specification. Layout ------ @@ -18,11 +20,14 @@ Layout Here you can see that the pool manager spins up the required Nova nodes with the load balancer image. It then hands the details of this node over the the -API server. +Admin API server. -The client sends an Atlas API request to the API server which in-turn sends the +The client sends an API request to the API server which in-turn sends the configuration information to the worker on the load balancer node. The worker -has a plugin API to speak to multiple load balancer types but is currently +has a plugin system to speak to multiple load balancer types but is currently designed to use HAProxy. +The statsd monitoring system routinely probes the workers and can alert on as +well as disable faulty nodes. + The parts of this diagram in orange are provided by the libra codebase. diff --git a/doc/libralayout.png b/doc/libralayout.png index 04dee19a..2f9cfcbb 100644 Binary files a/doc/libralayout.png and b/doc/libralayout.png differ diff --git a/doc/sources/libralayout.odg b/doc/sources/libralayout.odg index 22cd3869..ebb82800 100644 Binary files a/doc/sources/libralayout.odg and b/doc/sources/libralayout.odg differ diff --git a/doc/statsd/index.rst b/doc/statsd/index.rst index 2b842b35..fc1d2c7f 100644 --- a/doc/statsd/index.rst +++ b/doc/statsd/index.rst @@ -1,5 +1,5 @@ -Statsd Monitoring Daemon -======================== +Libra Statsd Monitoring Daemon +============================== .. toctree:: :maxdepth: 2