aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/patches/0001-opendaylight-formula-neutron.patch
blob: c661291d1170c3badd99c8010abc52b5f7c02411 (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
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
:
: All rights reserved. This program and the accompanying materials
: are made available under the terms of the Apache License, Version 2.0
: which accompanies this distribution, and is available at
: http://www.apache.org/licenses/LICENSE-2.0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
From: Michael Polenchuk <mpolenchuk@mirantis.com>
Date: Thu, 29 Jun 2017 12:05:25 +0400
Subject: [PATCH] Bring in opendaylight support

Change-Id: Ie9073fafccba336f94b1996bd85c98d7a7f5060b

diff --git a/neutron/files/pike/dhcp_agent.ini b/neutron/files/pike/dhcp_agent.ini
index d327e64..739dddf 100644
--- a/neutron/files/pike/dhcp_agent.ini
+++ b/neutron/files/pike/dhcp_agent.ini
@@ -1,3 +1,8 @@
+{%- if pillar.neutron.gateway is defined %}
+{%- from "neutron/map.jinja" import gateway as neutron with context %}
+{%- else %}
+{%- from "neutron/map.jinja" import compute as neutron with context %}
+{%- endif %}
 [DEFAULT]

 #
@@ -48,6 +53,7 @@ enable_isolated_metadata = True
 # this value will force the DHCP server to append specific host routes to the DHCP request. If this option is set, then the metadata service
 # will be activated for all the networks. (boolean value)
 #force_metadata = false
+{% if neutron.backend.router is defined %}force_metadata = True{% endif %}

 # Allows for serving metadata requests coming from a dedicated metadata access network whose CIDR is 169.254.169.254/16 (or larger prefix),
 # and is connected to a Neutron router from which the VMs send metadata:1 request. In this case DHCP Option 121 will not be injected in VMs,
diff --git a/neutron/files/pike/ml2_conf.ini b/neutron/files/pike/ml2_conf.ini
index b61e313..02da3b1 100644
--- a/neutron/files/pike/ml2_conf.ini
+++ b/neutron/files/pike/ml2_conf.ini
@@ -134,7 +134,8 @@ tenant_network_types = {{ server.backend.tenant_network_types }}
 {%- for mechanism_name, mechanism in server.get('backend', {}).get('mechanism', []).items() %}
 {%- do mechanism_drivers.append(mechanism.get('driver')) if 'driver' in mechanism %}
 {%- endfor %}
-{%- if "vxlan" in server.backend.tenant_network_types %}
+{%- set opendaylight_enabled = true if 'opendaylight' in mechanism_drivers|join else false %}
+{%- if "vxlan" in server.backend.tenant_network_types and not opendaylight_enabled %}
 {%- do mechanism_drivers.append('l2population') %}
 {%- endif %}
 mechanism_drivers = {{ ','.join(mechanism_drivers) }}
@@ -311,3 +312,11 @@ ovn_nb_connection = tcp:{{ server.controller_vip }}:6641
 ovn_sb_connection = tcp:{{ server.controller_vip }}:6642
 ovn_l3_scheduler = leastloaded
 {%- endif %}
+
+{%- if opendaylight_enabled %}
+[ml2_odl]
+port_binding_controller = pseudo-agentdb-binding
+url = http://{{ server.backend.host }}:{{ server.backend.rest_api_port }}/controller/nb/v2/neutron
+username = {{ server.backend.user }}
+password = {{ server.backend.password }}
+{%- endif %}
diff --git a/neutron/files/pike/neutron-generic.conf.Debian b/neutron/files/pike/neutron-generic.conf.Debian
index 123386d..d77f6c8 100644
--- a/neutron/files/pike/neutron-generic.conf.Debian
+++ b/neutron/files/pike/neutron-generic.conf.Debian
@@ -37,7 +37,7 @@ auth_strategy = keystone

 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin

-service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin
+service_plugins = {{ neutron.backend.get('router', 'router')}}, metering

 {% endif %}

@@ -668,7 +668,7 @@ root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
 # needs to execute commands in Dom0 in the hypervisor of XenServer, this item
 # should be set to 'xenapi_root_helper', so that it will keep a XenAPI session
 # to pass commands to Dom0. (string value)
-root_helper_daemon = sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
+#root_helper_daemon = <None>

 # Seconds between nodes reporting state to server; should be less than
 # agent_down_time, best if it is half or less than agent_down_time. (floating
@@ -2092,3 +2092,8 @@ heartbeat_rate = 2
 # Sets the list of available ciphers. value should be a string in the OpenSSL
 # cipher list format. (string value)
 #ciphers = <None>
+
+{%- if neutron.backend.ovsdb_connection is defined %}
+[ovs]
+ovsdb_connection = {{ neutron.backend.ovsdb_connection }}
+{%- endif %}
diff --git a/neutron/files/pike/neutron-server.conf.Debian b/neutron/files/pike/neutron-server.conf.Debian
index 79376a2..a7a4645 100644
--- a/neutron/files/pike/neutron-server.conf.Debian
+++ b/neutron/files/pike/neutron-server.conf.Debian
@@ -50,7 +50,7 @@ core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
 {% set l3_plugin = 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin' %}
 {% endif %}

-service_plugins ={{ l3_plugin }}, neutron.services.metering.metering_plugin.MeteringPlugin
+service_plugins = {{ server.backend.get('router', l3_plugin)}}, metering
 {%- if server.lbaas is defined -%},lbaasv2{%- endif -%}
 {%- if fwaas.get('enabled', False) -%},{{ fwaas[fwaas.api_version]['service_plugin'] }}{%- endif -%}
 {%- if server.get('qos', 'True') -%},neutron.services.qos.qos_plugin.QoSPlugin{%- endif -%}
@@ -703,7 +703,7 @@ root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
 # needs to execute commands in Dom0 in the hypervisor of XenServer, this item
 # should be set to 'xenapi_root_helper', so that it will keep a XenAPI session
 # to pass commands to Dom0. (string value)
-root_helper_daemon = sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
+#root_helper_daemon = <None>

 # Seconds between nodes reporting state to server; should be less than
 # agent_down_time, best if it is half or less than agent_down_time. (floating
@@ -2245,3 +2245,8 @@ username = {{ server.identity.user }}
 password = {{ server.identity.password }}
 auth_url=http://{{ server.identity.host }}:35357
 {%- endif %}
+
+{%- if server.backend.ovsdb_connection is defined %}
+[ovs]
+ovsdb_connection = {{ server.backend.ovsdb_connection }}
+{%- endif %}
diff --git a/neutron/gateway.sls b/neutron/gateway.sls
index 81513d8..7ec9b91 100644
--- a/neutron/gateway.sls
+++ b/neutron/gateway.sls
@@ -32,6 +32,7 @@ neutron_gateway_packages:
 /etc/neutron/dhcp_agent.ini:
   file.managed:
   - source: salt://neutron/files/{{ gateway.version }}/dhcp_agent.ini
+  - template: jinja
   - require:
     - pkg: neutron_gateway_packages