summaryrefslogtreecommitdiff
path: root/README.rst
blob: bc1d9ae67c99c0d4c9f10d714801d8bbba8a6654 (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
=========================
PowerVM Neutron ML2 Agent
=========================

The `IBM PowerVM hypervisor`_ provides virtualization on POWER hardware.
PowerVM operators can see benefits in their environments by making use of
OpenStack. This project implements a ML2 compatible agent that provides
capability for PowerVM admins to natively use OpenStack Neutron.  This agent is
tied to the Shared Ethernet Adapter technology which is currently the typical
scenario for PowerVM network virtualization.

.. _IBM PowerVM hypervisor: http://www.redbooks.ibm.com/abstracts/sg247940.html?Open


Problem description
===================

This project provides a ML2 compatible agent for the PowerVM hypervisor.
It is paired to the `nova-powervm`_ driver.

This PowerVM agent provides support for VLAN networks across Shared
Ethernet Adapters.  It provisions the VLANs on the Virtual I/O Servers
(VIOS) to support the client workload, via the PowerVM REST API.  The Nova
component will set up the peer adapter as part of VIF plugging.

Only networks of physical type VLAN are supported.

.. _nova-powervm: https://launchpad.net/nova-powervm


Use Cases
---------

* Deploy a VLAN to the specified Virtual I/O Server (or pair of servers) as
  deploys occur.

* Periodic heal of the systems (similar to Open vSwitch agent design).

* Periodic optimization (removal of unused VLANs from the Shared Ethernet
  Adapters) of the system.

* Heartbeat of the agent.


Project Priority
----------------

None


Data model impact
-----------------

None


REST API impact
---------------

None


Security impact
---------------

None


Notifications impact
--------------------

None


Other end user impact
---------------------

None to end user.


Performance Impact
------------------

No performance impact.  Deploy operations should not be impacted by using this
agent.


Other deployer impact
---------------------

The operator needs to obtain the agent from the code repository.  The cloud
administrator needs to install the agent on both the Neutron controller as well
as on the compute node.

The operator will then need to configure the bridge_mappings, to define in the
CONF file how to map the physical networks to the adapters.  No further
configuration is required for the operator.  If only one physical network
exists (the default), and a single Shared Ethernet Adapter, no bridge_mapping
configuration is required.  The agent will assume the default network maps to
that single Shared Ethernet Adapter (or single pair SEAs set up for redundancy).

Redundant Shared Ethernet Adapters (as defined by the `PowerVM Redbook`_) are
fully supported by this agent.

.. _PowerVM Redbook: http://www.redbooks.ibm.com/abstracts/sg247940.html

Developer impact
----------------

None


Implementation
==============

Assignee(s)
-----------

Primary assignee:
  thorst

Other contributors:
  wpward
  svenkat
  efried


Dependencies
============

* The Neutron ML2 Plugin.

* Utilizes the PowerVM REST API specification for management.  Will
  utilize future versions of this specification as it becomes available:
  http://ibm.co/1lThV9R

* Builds on top of the `pypowervm`_ library.  An open-source, python based
  library that interacts with the PowerVM REST API.

.. _pypowervm: https://github.com/powervm/pypowervm


Testing
=======

Tempest Tests
-------------

Since the tempest tests should be implementation agnostic, the existing
tempest tests should be able to run against the PowerVM agent without issue.

Thorough unit tests exist within the agent that validate specific functions
for this implementation.


Functional Tests
----------------

A third party functional test environment has been created.  It monitors
incoming Neutron change sets.  Once it detects a new change set, it should
execute the existing lifecycle API tests.  A non-gating vote (+1 or -1) will
be provided with information provided (logs) based on the result.

Work continues in this area.


API Tests
---------

No changes (no new APIs)



References
==========

* Neutron ML2 Plugin: https://wiki.openstack.org/wiki/Neutron/ML2

* PowerVM REST API Initial Specification (may require newer versions as they
  become available): http://ibm.co/1lThV9R

* PowerVM Virtualization Introduction and Configuration:
  http://www.redbooks.ibm.com/abstracts/sg247940.html

* PowerVM Best Practices: http://www.redbooks.ibm.com/abstracts/sg248062.html