Browse Source

Merge "Specification of IP movement for OVS bridges"

Jenkins 3 years ago
parent
commit
0447a88cd7
2 changed files with 165 additions and 0 deletions
  1. 1
    0
      doc/source/index.rst
  2. 164
    0
      specs/liberty/network/ip-address-movement-for-ovs-bridges.rst

+ 1
- 0
doc/source/index.rst View File

@@ -12,6 +12,7 @@ Juno specs:
12 12
 
13 13
    specs/juno/**
14 14
    specs/kilo/**
15
+   specs/liberty/**
15 16
 
16 17
 ==================
17 18
 Indices and tables

+ 164
- 0
specs/liberty/network/ip-address-movement-for-ovs-bridges.rst View File

@@ -0,0 +1,164 @@
1
+===================================
2
+IP address movement for ovs bridges
3
+===================================
4
+
5
+Include the URL of your launchpad blueprint:
6
+
7
+https://blueprints.launchpad.net/openstack-chef/+spec/ip-movement
8
+
9
+Problem description
10
+===================
11
+
12
+Neutron openvswitch plugin uses ovs bridges to manage network stream. Recipe
13
+openvswitch, l3_agent, and vpn_agent use ovs commands to create those bridges
14
+and will plug the corresponding NICs to each of them. But those recipes do not
15
+move the NICs' IP addresses to the bridges, which will lead to the NIC IP address
16
+can not be accessed once finish the bridges creation.
17
+
18
+
19
+Proposed change
20
+===============
21
+
22
+Add recipes to move IP address from NIC to bridge. Make sure those IP addresses
23
+can also be accessed after finish the bridge creation.
24
+
25
+Three attributes will be added, including:
26
+
27
+* ['openstack']['network']['ip_movement']['enable']: Boolean attribute to decide
28
+  whether IP movement should be enabled or not. Default to true.
29
+
30
+* ['openstack']['network']['ip-movement']['timeout']: Integer attribute to decide
31
+  the timeout of IP movement. IP movement uses 'service network restart' (for fedora
32
+  platform) and 'ifdown', 'ifup' (for ubuntu platform)  commands to let network
33
+  configurations take effect. This attribute decides how long the node should wait
34
+  for the network to become operational again after executing the previous commands.
35
+  And it default to 180.
36
+
37
+* ['openstack']['network']['ip-movement']['validate-ip']: String of IP address pinged
38
+  by ip movement in the of its operations to check whether the ip movement is succeed.
39
+  Default to nil. Means this ip movement will use default gateway to check its status.
40
+
41
+Two libraries will be added, including:
42
+
43
+* ip-movement-fedora: This library includes the fedora platform IP movement configurations.
44
+
45
+* ip-movement-ubuntu: This library includes the ubuntu platform IP movement configurations.
46
+
47
+One resource will be added, including:
48
+
49
+* ovs_bridge: This resource will create the ovs bridge and move the ip address to the
50
+  corresponding bridge depend on the resource attributes.
51
+
52
+openvswitch and l3-agent recipes will changed to use this new resource create ovs bridge.
53
+
54
+Alternatives
55
+------------
56
+
57
+Like devstack, using ovs commands and ip commands to flush the ip address in NIC,
58
+and add ip address to ovs bridge can also move the ip address to the bridges. But
59
+this is a temporary move. After network restart or reboot the OS, the ip address
60
+will go back to NIC. We need make sure this movement is persistent by write those
61
+configurations to network configuration files.
62
+
63
+Data model impact
64
+-----------------
65
+
66
+None
67
+
68
+REST API impact
69
+---------------
70
+
71
+None
72
+
73
+Security impact
74
+---------------
75
+
76
+None
77
+
78
+Notifications impact
79
+--------------------
80
+
81
+None
82
+
83
+Other end user impact
84
+---------------------
85
+
86
+None
87
+
88
+Performance Impact
89
+------------------
90
+
91
+None
92
+
93
+Other deployer impact
94
+---------------------
95
+
96
+None
97
+
98
+
99
+Implementation
100
+==============
101
+
102
+Assignee(s)
103
+-----------
104
+
105
+Primary assignee:
106
+  - hwhu@cn.ibm.com
107
+
108
+Other contributors:
109
+  - jckasper@us.ibm.com
110
+  - lzklibj@cn.ibm.com
111
+
112
+Work Items
113
+----------
114
+
115
+* Add new attributes to openstack-network.
116
+
117
+* Add ovs_bridge resource and provider.
118
+
119
+* Add ip-movement-fedora library to handle fedora platform IP movement configurations.
120
+
121
+* Add ip-movement-ubuntu library to configure ubuntu platform IP movement configurations.
122
+
123
+* Add the unit tests.
124
+
125
+* Change openvswitch and l3-agent recipes use ovs_bridge resource to create ovs bridge.
126
+
127
+Dependencies
128
+============
129
+
130
+* IP movement use 'service network restart' , 'ifdown' and 'ifup' to let network
131
+  configurations take effect. Those scripts are contained in initscripts packege.
132
+  This cookbook will install it.
133
+
134
+
135
+Testing
136
+=======
137
+
138
+* Add unit tests for the new recipes.
139
+
140
+* For function tests and CI integration tests, at least an all-in-one openstack
141
+  configured with neutron openvswitch plugin and enabled l3 service is needed.
142
+
143
+
144
+Documentation Impact
145
+====================
146
+
147
+* Configure attribute ['openstack']['network']['ip-movement']['enable'] = 'True'
148
+  to enable IP movement.
149
+
150
+* Using ['openstack']['network']['ip-movement']['timeout'] to configure the timeout
151
+  of IP movement. This attribute decides how long the node should wait for the network
152
+  to become operational again after executing the previous commands.
153
+
154
+* IP movement default to use default gateway to check its network connections in the
155
+  end of its operations. Assign an ip address to ['openstack']['network']['ip-movement']
156
+  ['validate-ip'] attribute to use another ip address instead.
157
+
158
+
159
+References
160
+==========
161
+
162
+* `Red Hat network scripts integration <https://github.com/osrg/openvswitch/blob/mpls-nx/rhel/README.RHEL>`_
163
+
164
+* `README.Debian for openvswitch-switch <https://github.com/horms/openvswitch/blob/devel/add-group-help-fix/debian/openvswitch-switch.README.Debian>`_

Loading…
Cancel
Save