From 5005e2f8a9c4d9bb10feeea61d8e5651d76fc2b7 Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Tue, 11 Jul 2017 11:41:08 +0400 Subject: Apply upstream patches For opendaylight support: * neutron formula * reclass system model Plus missing apply of haproxy state. Change-Id: Ic9e3672b51d5331656d636c44c3f891e49437e23 Signed-off-by: Michael Polenchuk --- mcp/config/states/openstack | 1 + mcp/patches/1a2c7f23.diff | 99 +++++++++++++++++++++++++++++++++++++++++++++ mcp/patches/1f59df54.diff | 98 ++++++++++++++++++++++++++++++++++++++++++++ mcp/patches/patch.sh | 8 ++++ mcp/patches/patches.list | 2 + mcp/scripts/salt.sh | 2 + 6 files changed, 210 insertions(+) create mode 100644 mcp/patches/1a2c7f23.diff create mode 100644 mcp/patches/1f59df54.diff create mode 100755 mcp/patches/patch.sh create mode 100644 mcp/patches/patches.list diff --git a/mcp/config/states/openstack b/mcp/config/states/openstack index 1946af553..5455163bf 100755 --- a/mcp/config/states/openstack +++ b/mcp/config/states/openstack @@ -3,6 +3,7 @@ salt -I 'rabbitmq:server' cmd.run "rabbitmqctl status" salt -I 'mysql:server' state.sls mysql salt -I 'memcached:server' state.sls memcached +salt -I 'haproxy:proxy' state.sls haproxy salt -I 'keystone:server' state.sls keystone.server salt -I 'keystone:server' service.restart apache2 diff --git a/mcp/patches/1a2c7f23.diff b/mcp/patches/1a2c7f23.diff new file mode 100644 index 000000000..27ef9161e --- /dev/null +++ b/mcp/patches/1a2c7f23.diff @@ -0,0 +1,99 @@ +From 1a2c7f23229050b1694565c5e2ee13146001eb18 Mon Sep 17 00:00:00 2001 +From: Michael Polenchuk +Date: Thu, 29 Jun 2017 12:05:25 +0400 +Subject: [PATCH] Bring in opendaylight support + +Change-Id: Ie9073fafccba336f94b1996bd85c98d7a7f5060b +--- + +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 @@ + # 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 5b7058d..bc438b9 100644 +--- a/neutron/files/ocata/neutron-generic.conf.Debian ++++ b/neutron/files/ocata/neutron-generic.conf.Debian +@@ -33,7 +33,7 @@ + #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 + +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,10 +7,10 @@ + # 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 %} + + {%- if server.backend.engine == "contrail" %} + NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/opencontrail/ContrailPlugin.ini" +-{%- endif %} +\ No newline at end of file ++{%- endif %} +diff --git a/neutron/files/ocata/neutron-server.conf.Debian b/neutron/files/ocata/neutron-server.conf.Debian +index e320ca4..d6de235 100644 +--- a/neutron/files/ocata/neutron-server.conf.Debian ++++ b/neutron/files/ocata/neutron-server.conf.Debian +@@ -39,7 +39,7 @@ + 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 + +@@ -831,7 +831,7 @@ + # 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 +@@ -2194,3 +2194,8 @@ + {% 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/server.sls b/neutron/server.sls +index 0b3a6be..7a6bd23 100644 +--- a/neutron/server.sls ++++ b/neutron/server.sls +@@ -64,7 +64,7 @@ + + {%- endif %} + +-{% if server.backend.engine == "ml2" %} ++{% if server.backend.engine in ["ml2", "opendaylight"] %} + + /etc/neutron/plugins/ml2/ml2_conf.ini: + file.managed: diff --git a/mcp/patches/1f59df54.diff b/mcp/patches/1f59df54.diff new file mode 100644 index 000000000..9d1c6fe4d --- /dev/null +++ b/mcp/patches/1f59df54.diff @@ -0,0 +1,98 @@ +From 1f59df548f3e1461cc0ebf70c29a89205385eb20 Mon Sep 17 00:00:00 2001 +From: Michael Polenchuk +Date: Thu, 29 Jun 2017 12:22:42 +0400 +Subject: [PATCH] Bring in opendaylight support + +Change-Id: I3efec9a8b586a6c75b1c1635ad2a7024d73d9ad2 +--- + +diff --git a/neutron/control/opendaylight/cluster.yml b/neutron/control/opendaylight/cluster.yml +new file mode 100644 +index 0000000..4133650 +--- /dev/null ++++ b/neutron/control/opendaylight/cluster.yml +@@ -0,0 +1,19 @@ ++classes: ++- service.keepalived.cluster.single ++- service.haproxy.proxy.single ++- service.neutron.control.cluster ++- system.haproxy.proxy.listen.openstack.neutron ++- system.neutron.control.openvswitch.cluster ++parameters: ++ neutron: ++ server: ++ backend: ++ engine: opendaylight ++ host: ${_param:opendaylight_service_host} ++ rest_api_port: 8282 ++ user: admin ++ password: admin ++ ovsdb_connection: tcp:127.0.0.1:6639 ++ mechanism: ++ ovs: ++ driver: opendaylight_v2 +diff --git a/neutron/control/opendaylight/single.yml b/neutron/control/opendaylight/single.yml +new file mode 100644 +index 0000000..19af585 +--- /dev/null ++++ b/neutron/control/opendaylight/single.yml +@@ -0,0 +1,16 @@ ++classes: ++- service.neutron.control.single ++- system.neutron.control.openvswitch.single ++parameters: ++ neutron: ++ server: ++ backend: ++ engine: opendaylight ++ host: ${_param:opendaylight_service_host} ++ rest_api_port: 8282 ++ user: admin ++ password: admin ++ ovsdb_connection: tcp:127.0.0.1:6639 ++ mechanism: ++ ovs: ++ driver: opendaylight_v2 +diff --git a/neutron/gateway/opendaylight/single.yml b/neutron/gateway/opendaylight/single.yml +new file mode 100644 +index 0000000..29c8d95 +--- /dev/null ++++ b/neutron/gateway/opendaylight/single.yml +@@ -0,0 +1,8 @@ ++classes: ++- service.neutron.gateway.single ++parameters: ++ neutron: ++ gateway: ++ backend: ++ engine: opendaylight ++ ovsdb_connection: tcp:127.0.0.1:6639 +diff --git a/opendaylight/server/single.yml b/opendaylight/server/single.yml +new file mode 100644 +index 0000000..3d11872 +--- /dev/null ++++ b/opendaylight/server/single.yml +@@ -0,0 +1,2 @@ ++classes: ++- service.opendaylight.server.single +diff --git a/reclass/storage/system/opendaylight_control_single.yml b/reclass/storage/system/opendaylight_control_single.yml +new file mode 100644 +index 0000000..890ff59 +--- /dev/null ++++ b/reclass/storage/system/opendaylight_control_single.yml +@@ -0,0 +1,15 @@ ++parameters: ++ _param: ++ opendaylight_control_hostname: odl01 ++ reclass: ++ storage: ++ node: ++ opendaylight_control_node01: ++ name: ${_param:opendaylight_control_hostname} ++ domain: ${_param:cluster_domain} ++ classes: ++ - cluster.${_param:cluster_name}.opendaylight.control ++ params: ++ salt_master_host: ${_param:reclass_config_master} ++ linux_system_codename: ${_param:linux_system_codename} ++ single_address: ${_param:opendaylight_service_host} diff --git a/mcp/patches/patch.sh b/mcp/patches/patch.sh new file mode 100755 index 000000000..9f9cdea0e --- /dev/null +++ b/mcp/patches/patch.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -r "$1" ]; then + while IFS=': ' read -r p_dest p_file; do + patch -d $p_dest -p1 < /root/fuel/mcp/patches/$p_file + done < $1 +fi + diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list new file mode 100644 index 000000000..a36bc06a1 --- /dev/null +++ b/mcp/patches/patches.list @@ -0,0 +1,2 @@ +/srv/salt/env/prd: 1a2c7f23.diff +/srv/salt/reclass/classes/system: 1f59df54.diff diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh index 9378b6c43..c87645024 100755 --- a/mcp/scripts/salt.sh +++ b/mcp/scripts/salt.sh @@ -25,6 +25,8 @@ ssh ${SSH_OPTS} ubuntu@${SALT_MASTER} bash -s << SALT_INSTALL_END cp -r /root/fuel/mcp/salt-formulas/* /usr/share/salt-formulas/env cd /srv/salt/reclass/classes/service && ln -s /usr/share/salt-formulas/reclass/service/opendaylight + cd /root/fuel/mcp/patches && ./patch.sh patches.list + salt '*' saltutil.refresh_pillar salt '*' saltutil.sync_all -- cgit 1.2.3-korg