aboutsummaryrefslogtreecommitdiffstats
path: root/charms/trusty/contrail-configuration/README.md
blob: ae21000adc21881d67275af1de72e40f661b907c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Overview
--------

OpenContrail (www.opencontrail.org) is a fully featured Software Defined
Networking (SDN) solution for private clouds. It supports high performance
isolated tenant networks without requiring external hardware support. It
provides a Neutron plugin to integrate with OpenStack.

This charm is designed to be used in conjunction with the rest of the OpenStack
related charms in the charm store to virtualize the network that Nova Compute
instances plug into.

This charm provides the configuration node component which includes
contrail-api, contrail-schema, contrail-discovery and ifmap-server services.
Only OpenStack Icehouse or newer is supported.
Juju 1.23.2+ required.

Usage
-----

Cassandra, Zookeeper, RabbitMQ and Keystone are prerequisite services to deploy.
Once ready, deploy and relate as follows:

    juju deploy contrail-configuration
    juju add-relation contrail-configuration:cassandra cassandra:database
    juju add-relation contrail-configuration zookeeper
    juju add-relation contrail-configuration rabbitmq-server
    juju add-relation contrail-configuration keystone

After deployment, relate to neutron-api-contrail:

    juju add-relation neutron-api-contrail contrail-configuration

Install Sources
---------------

The version of OpenContrail installed when deploying can be changed using the
'install-sources' option. This is a multilined value that may refer to PPAs or
Deb repositories.

The version of dependent OpenStack components installed when deploying can be
changed using the 'openstack-origin' option. When deploying to different
OpenStack versions, openstack-origin needs to be set across all OpenStack and
OpenContrail charms where available.

Floating IP Pools
-----------------

To use OpenStack floating IP functionality, floating IP pools must be created
and activated. Creation of multiple pools for multiple projects is supported
using the 'floating-ip-pools' option.

A value is specified as a YAML encoded string, indicating one or more pools
using a list of maps, where each map consists of the following attributes:

    project - project name
    network - network name
    pool-name - floating pool name
    target-projects - list of projects allowed to use pool

For example to create a floating ip pool named 'floatingip_pool' on
'admin:public' network and allow 'admin' project to use:

    juju set contrail-configuration \
      "floating-ip-pools=[ { project: admin, network: public, pool-name: floatingip_pool, target-projects: [ admin ] } ]"

Previously specified pools will be deactivated and removed.

Nova Metadata
-------------

To use Nova Metadata with Nova Compute instances, a metadata service must first
be registered. Registration allows OpenContrail to create the appropriate
network config to proxy requests from instances to a nova-api service on the
network.

Relating to a charm implementing neutron-metadata interface will register a
linklocal metadata service:

    juju add-relation contrail-configuration neutron-metadata-charm

neutron-contrail charm also needs to be related to the same charm to use correct
configuration:

    juju add-relation neutron-contrail neutron-metadata-charm

*NOTE: neutron-contrail runs and registers its own nova-api-metadata service
on each Compute node by default ('local-metadata-server' option), so using
neutron-metadata relation isn't necessary unless you need more control over
deployment.*

High Availability (HA)
----------------------

Multiple units of this charm can be deployed to support HA deployments:

    juju add-unit contrail-configuration

Relating to haproxy charm (http-services relation) allows multiple units to be
load balanced:

    juju add-relation contrail-configuration haproxy

Setting the 'vip' option instructs related charms to use IP address specified
for accessing the configuration node:

    juju set contrail-configuration vip=x.x.x.x

When load balancing with HAProxy you would set vip to the IP address of the
deployed haproxy charm (or a shared Virtual IP address if doing clustered
HAProxy).