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
|
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/ocata/dhcp_agent.ini b/neutron/files/ocata/dhcp_agent.ini
index d327e64..ba5f933 100644
--- a/neutron/files/ocata/dhcp_agent.ini
+++ b/neutron/files/ocata/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.get('router', 'False') %}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/ocata/ml2_conf.ini b/neutron/files/ocata/ml2_conf.ini
index 0d48951..347eb15 100644
--- a/neutron/files/ocata/ml2_conf.ini
+++ b/neutron/files/ocata/ml2_conf.ini
@@ -269,3 +269,11 @@ enable_security_group = True
# Use ipset to speed-up the iptables based security groups. Enabling ipset
# support requires that ipset is installed on L2 agent node. (boolean value)
#enable_ipset = true
+
+{%- if server.backend.engine == "opendaylight" %}
+[ml2_odl]
+port_binding_controller = network-topology
+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/ocata/neutron-generic.conf.Debian b/neutron/files/ocata/neutron-generic.conf.Debian
index 0dde78f..05ac805 100644
--- a/neutron/files/ocata/neutron-generic.conf.Debian
+++ b/neutron/files/ocata/neutron-generic.conf.Debian
@@ -33,11 +33,11 @@ state_path = /var/lib/neutron
#auth_strategy = keystone
auth_strategy = keystone
-{% if neutron.backend.engine == "ml2" %}
+{% if neutron.backend.engine in ["ml2", "opendaylight"] %}
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 %}
@@ -2073,3 +2073,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.engine == "opendaylight" %}
+[ovs]
+ovsdb_connection = {{ neutron.backend.ovsdb_connection }}
+{%- endif %}
diff --git a/neutron/files/ocata/neutron-server b/neutron/files/ocata/neutron-server
index 54f6ceb..1682ee0 100644
--- a/neutron/files/ocata/neutron-server
+++ b/neutron/files/ocata/neutron-server
@@ -7,7 +7,7 @@
# neutron.conf
#NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini"
-{%- if server.backend.engine == "ml2" %}
+{%- if server.backend.engine in ["ml2", "opendaylight"] %}
NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/ml2/ml2_conf.ini"
{%- endif %}
diff --git a/neutron/files/ocata/neutron-server.conf.Debian b/neutron/files/ocata/neutron-server.conf.Debian
index 229d342..ac8bdff 100644
--- a/neutron/files/ocata/neutron-server.conf.Debian
+++ b/neutron/files/ocata/neutron-server.conf.Debian
@@ -39,11 +39,11 @@ api_extensions_path = extensions:/usr/lib/python2.7/dist-packages/neutron_plugin
core_plugin = neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
service_plugins = neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2
-{% elif server.backend.engine == "ml2" %}
+{% elif server.backend.engine in ["ml2", "opendaylight"] %}
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 = {{ server.backend.get('router', 'router')}},metering
{%- if server.lbaas is defined -%},lbaasv2{%- endif -%}
{%- if server.get('qos', 'True') -%},neutron.services.qos.qos_plugin.QoSPlugin{%- endif -%}
{%- if server.get('vlan_aware_vms', False) -%},trunk{%- endif -%}
@@ -835,7 +835,7 @@ allow_headers = {{ server.cors.allow_headers }}
# Deprecated group/name - [DEFAULT]/sql_connection
# Deprecated group/name - [DATABASE]/sql_connection
# Deprecated group/name - [sql]/connection
-{% if server.backend.engine == "ml2" %}
+{% if server.backend.engine in ["ml2", "opendaylight"] %}
connection = {{ server.database.engine }}+pymysql://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}?charset=utf8
{% else %}
connection = sqlite:////var/lib/neutron/neutron.sqlite
@@ -2198,3 +2198,8 @@ service_provider = LOADBALANCERV2:Opencontrail:neutron_plugin_contrail.plugins.o
{% include "neutron/files/"+server.version+"/ContrailPlugin.ini" %}
{% endif %}
+
+{%- if server.backend.engine == "opendaylight" %}
+[ovs]
+ovsdb_connection = {{ server.backend.ovsdb_connection }}
+{%- endif %}
diff --git a/neutron/gateway.sls b/neutron/gateway.sls
index a6e6586..ab4bb85 100644
--- a/neutron/gateway.sls
+++ b/neutron/gateway.sls
@@ -27,6 +27,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
diff --git a/neutron/server.sls b/neutron/server.sls
index 0b3a6be..7a6bd23 100644
--- a/neutron/server.sls
+++ b/neutron/server.sls
@@ -64,7 +64,7 @@ neutron_server_service:
{%- endif %}
-{% if server.backend.engine == "ml2" %}
+{% if server.backend.engine in ["ml2", "opendaylight"] %}
/etc/neutron/plugins/ml2/ml2_conf.ini:
file.managed:
|