Clearwater Murano application

https://blueprints.launchpad.net/murano-apps/+spec/clearwater-vims-implementation

Problem description

It must be possible to deploy and manage lifecycle of Clearwater vIMS. Clearwater vIMS consists of several components:

  • Bono (Edge Proxy)
  • Sprout (SIP Router)
  • Homestead (HSS Cache)
  • Homer (XDMS storage)
  • Ellis (provisioning portal)
  • Ralf (CTF)

Additionally following DNS server application should be written: * BIND

Clearwater deployment diagram

                       +----------+
                       |          |
                       |   Ellis  |
                HTTP   |          |
                +------+          +-----+
                |      |          |     | HTTP
                |      +----------+     |
                |                       |
          +-----+-----+           +-----+-----+       +------------------+
          |           |           |           |       |                  |
          |  Homer    |           | Homestead |       |Client SIP software
          |           | XCAP  SIP |           |       |                  |
          |           +--+     +--+           |       +---------------+--+
          |           |  |     |  |           |                       ^
          +-----------+  |     |  +-----------+                       |
                         |     |                                      |
                         |     |                                      |
+------------+         +-+-----+----+          +------------+         |
|            |  HTTP   |            |   SIP    |            |    SIP  |
|    Ralf    +---------+   Sprout   +----------+    Bono    +---------+
|            |         |            |          |            |
|            |         |            |          |            |
|            |         |            |          |            |
+------+-----+         +------------+          +---+--------+
       |                                           |
       |                    HTTP                   |
       +-------------------------------------------+

More details about Clearwater components may be found at http://www.projectclearwater.org

Proposed changes

Separate application should be written for each of Clearwater components. One more application should be written for aggregation of all components (Clearwater main application).

Main application input parameters:

  • OS image for deploy
  • user keypair name
  • zone name
  • DNSSEC key

This parameters should be passed to child components.

Components input parameters:

  • Flavour for instances
  • Count of instances

Main application workflow

  1. Instantiate child applications
  2. Create common networks and security group
  3. Call child applications deploy() method

Components have to be deployed in following order:

  1. DNS application
  2. One application with initial etcd cluster node (Ellis preferred)
  3. Rest of applications

Components common workflow

  1. Find main application for common properties retrieving
  2. Create security group for application
  3. Create instances
  4. Create deploy scripts from templates
  5. Run deploy scripts

For components (except DNS server) following actions must be provided:

  • Scale Up - add additional node to cluster
  • Scale Down - remove node from cluster

Both actions can be implemented in two steps:

  • add/remove node to/from component object model
  • update appropriate DNS records

Data model impact

None

REST API impact

None

Versioning impact

None

Other end user impact

None

Deployer impact

None

Developer impact

None

Murano-dashboard / Horizon impact

None

Implementation

Assignee(s)

Work Items

  1. Create Clearwater application prototype
  2. Extend Clearwater application functionality using current Core Library
  3. Add Scalable Application Framework support

Testing

  1. Clearwater live tests can be used for testing installation.

Documentation Impact

None