diff options
author | Michael Polenchuk <mpolenchuk@mirantis.com> | 2018-03-28 13:50:33 +0400 |
---|---|---|
committer | Michael Polenchuk <mpolenchuk@mirantis.com> | 2018-03-28 15:50:31 +0400 |
commit | 3b338ea9f19052eb4cf3dc70d9d49d03cb602ef2 (patch) | |
tree | 435b886a1da4acb544513676f93bd137b8bf9096 | |
parent | 10a36807bc6ec0db532a93f6dbb2b42ec1c47617 (diff) |
[odl] Setup manager target after ovs host config
Change-Id: Ia517b7cf1723a5afaf43cb0709716f3a67a29e9f
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
7 files changed, 164 insertions, 50 deletions
diff --git a/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 index 76b893eae..0bd3a1307 100644 --- a/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 +++ b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 @@ -23,8 +23,8 @@ cluster: {%- if conf.MCP_VCP %} - virtual_control_plane {%- endif %} - - openstack_ha - opendaylight + - openstack_ha - networks virtual: nodes: diff --git a/mcp/config/scenario/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml index 96d4bcc27..f52eaf5aa 100644 --- a/mcp/config/scenario/os-odl-nofeature-noha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-noha.yaml @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 Mirantis Inc., Enea AB and others. +# 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 @@ -9,9 +9,9 @@ cluster: domain: mcp-pike-odl-noha.local states: + - opendaylight - openstack_noha - neutron_gateway - - opendaylight - networks virtual: nodes: diff --git a/mcp/config/states/opendaylight b/mcp/config/states/opendaylight index 515420a7e..5bbf0d7a8 100755 --- a/mcp/config/states/opendaylight +++ b/mcp/config/states/opendaylight @@ -21,4 +21,4 @@ function odl() { salt -I 'opendaylight:server' service.mask opendaylight salt -I 'opendaylight:server' state.sls opendaylight -wait_for 20 "salt --out yaml -C 'I@neutron:server and *01*' network.connect $(odl bind_ip) $(odl rest_port) | fgrep 'result: true'" +wait_for 20 "salt --out yaml -C 'I@neutron:server and *01*' network.connect $(odl bind_ip) $(odl rest_port) | fgrep -q 'result: true'" diff --git a/mcp/patches/0001-Apply-opendaylight-client-state-on-compute-only.patch b/mcp/patches/0001-Apply-opendaylight-client-state-on-compute-only.patch deleted file mode 100644 index 4c1d2ce8f..000000000 --- a/mcp/patches/0001-Apply-opendaylight-client-state-on-compute-only.patch +++ /dev/null @@ -1,39 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -: 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: Mon, 12 Mar 2018 16:32:50 +0400 -Subject: [PATCH] Apply opendaylight client state on compute only - -Change-Id: I07cd760fdb4ce84aba21450af9246c8c9128118f - -diff --git a/neutron/compute.sls b/neutron/compute.sls -index 418282d..7ff136a 100644 ---- a/neutron/compute.sls -+++ b/neutron/compute.sls -@@ -2,6 +2,10 @@ - {%- if compute.enabled %} - - {% if compute.backend.engine == "ml2" %} -+{%- if compute.opendaylight is defined %} -+include: -+ - .opendaylight.client -+{%- else %} - neutron_compute_packages: - pkg.installed: - - names: {{ compute.pkgs }} -@@ -243,9 +247,6 @@ rabbitmq_ca_neutron_compute: - {%- endif %} - {%- endif %} - --{%- if compute.opendaylight is defined %} --include: -- - .opendaylight.client - {%- endif %} - - {%- elif compute.backend.engine == "ovn" %} diff --git a/mcp/patches/0001-Filter-out-OpenDaylight-client-on-computes.patch b/mcp/patches/0001-Filter-out-OpenDaylight-client-on-computes.patch new file mode 100644 index 000000000..be8ba1ee4 --- /dev/null +++ b/mcp/patches/0001-Filter-out-OpenDaylight-client-on-computes.patch @@ -0,0 +1,145 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: 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: Mon, 12 Mar 2018 16:32:50 +0400 +Subject: [PATCH] Filter out OpenDaylight client on computes + +OpenDaylight uses pseudo agents to manage network ports, +therefore detach unwanted ovs agent & etc. from compute state. +Also swap the set-manager target with tunnel_ip/provider_mappings +settings since ovs host config should be in place before manager setup. + +Change-Id: I07cd760fdb4ce84aba21450af9246c8c9128118f + +diff --git a/neutron/compute.sls b/neutron/compute.sls +index 418282d..e83a5b7 100644 +--- a/neutron/compute.sls ++++ b/neutron/compute.sls +@@ -2,6 +2,36 @@ + {%- if compute.enabled %} + + {% if compute.backend.engine == "ml2" %} ++ ++{% if compute.get('dhcp_agent_enabled', False) %} ++neutron_dhcp_agent_packages: ++ pkg.installed: ++ - names: ++ - neutron-dhcp-agent ++ ++neutron_dhcp_agent: ++ service.running: ++ - enable: true ++ - names: ++ - neutron-dhcp-agent ++ - watch: ++ - file: /etc/neutron/dhcp_agent.ini ++ - require: ++ - pkg: neutron_dhcp_agent_packages ++ ++/etc/neutron/dhcp_agent.ini: ++ file.managed: ++ - source: salt://neutron/files/{{ compute.version }}/dhcp_agent.ini ++ - template: jinja ++ - require: ++ - pkg: neutron_dhcp_agent_packages ++ ++{% endif %} ++ ++{%- if compute.opendaylight is defined %} ++include: ++ - .opendaylight.client ++{%- else %} + neutron_compute_packages: + pkg.installed: + - names: {{ compute.pkgs }} +@@ -53,31 +83,6 @@ neutron_sriov_service: + + {% endif %} + +-{% if compute.get('dhcp_agent_enabled', False) %} +-neutron_dhcp_agent_packages: +- pkg.installed: +- - names: +- - neutron-dhcp-agent +- +-neutron_dhcp_agent: +- service.running: +- - enable: true +- - names: +- - neutron-dhcp-agent +- - watch: +- - file: /etc/neutron/dhcp_agent.ini +- - require: +- - pkg: neutron_dhcp_agent_packages +- +-/etc/neutron/dhcp_agent.ini: +- file.managed: +- - source: salt://neutron/files/{{ compute.version }}/dhcp_agent.ini +- - template: jinja +- - require: +- - pkg: neutron_dhcp_agent_packages +- +-{% endif %} +- + {% if compute.dvr %} + + {%- if fwaas.get('enabled', False) %} +@@ -243,10 +248,7 @@ rabbitmq_ca_neutron_compute: + {%- endif %} + {%- endif %} + +-{%- if compute.opendaylight is defined %} +-include: +- - .opendaylight.client +-{%- endif %} ++{%- endif %}{# !OpenDaylight #} + + {%- elif compute.backend.engine == "ovn" %} + +diff --git a/neutron/opendaylight/client.sls b/neutron/opendaylight/client.sls +index 57e6bcc..79ab0a2 100644 +--- a/neutron/opendaylight/client.sls ++++ b/neutron/opendaylight/client.sls +@@ -9,27 +9,27 @@ python-networking-odl: + + {%- if not grains.get('noservices', False) %} + +-ovs_set_manager: ++neutron_odl_ovs_hostconfig: + cmd.run: +- - name: 'ovs-vsctl set-manager {{ neutron.opendaylight.ovsdb_server_iface }} {{ neutron.opendaylight.ovsdb_odl_iface }}' +- - unless: 'ovs-vsctl get-manager | fgrep -x {{ neutron.opendaylight.ovsdb_odl_iface }}' ++ - name: 'neutron-odl-ovs-hostconfig --noovs_dpdk' ++ - require: ++ - pkg: python-networking-odl + + ovs_set_tunnel_endpoint: + cmd.run: + - name: 'ovs-vsctl set Open_vSwitch . other_config:local_ip={{ neutron.opendaylight.tunnel_ip }}' +- - unless: 'ovs-vsctl get Open_vSwitch . other_config | fgrep local_ip="{{ neutron.opendaylight.tunnel_ip }}"' ++ - unless: 'ovs-vsctl get Open_vSwitch . other_config | fgrep -q local_ip=\"{{ neutron.opendaylight.tunnel_ip }}\"' + + {%- if neutron.opendaylight.provider_mappings is defined %} + ovs_set_provider_mappings: + cmd.run: + - name: 'ovs-vsctl set Open_vSwitch . other_config:provider_mappings={{ neutron.opendaylight.provider_mappings }}' +- - unless: 'ovs-vsctl get Open_vSwitch . other_config | fgrep provider_mappings="{{ neutron.opendaylight.provider_mappings }}"' ++ - unless: 'ovs-vsctl get Open_vSwitch . other_config | fgrep -q provider_mappings=\"{{ neutron.opendaylight.provider_mappings }}\"' + {%- endif %} + +-neutron_odl_ovs_hostconfig: ++ovs_set_manager: + cmd.run: +- - name: 'neutron-odl-ovs-hostconfig --noovs_dpdk' +- - require: +- - pkg: python-networking-odl ++ - name: 'ovs-vsctl set-manager {{ neutron.opendaylight.ovsdb_server_iface }} {{ neutron.opendaylight.ovsdb_odl_iface }}' ++ - unless: 'ovs-vsctl get-manager | fgrep -qx {{ neutron.opendaylight.ovsdb_odl_iface }}' + + {%- endif %} diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index 711b0f3a5..b650ec87b 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -5,7 +5,7 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -/usr/share/salt-formulas/env: 0001-Apply-opendaylight-client-state-on-compute-only.patch +/usr/share/salt-formulas/env: 0001-Filter-out-OpenDaylight-client-on-computes.patch /usr/share/salt-formulas/env: 0002-maas-region-skip-credentials-update.patch /usr/share/salt-formulas/env: 0003-maas-region-force-artifact-download.patch /usr/share/salt-formulas/env: 0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml index e7e06a61d..b0690167f 100644 --- a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml @@ -14,17 +14,13 @@ classes: parameters: linux: network: - gateway: ${_param:openstack_gateway_address} interface: external_interface: enabled: true + type: eth name: ${_param:external_interface} mtu: ${_param:interface_mtu} proto: manual - ovs_port_type: OVSPort - type: ovs_port - ovs_bridge: br-floating - bridge: br-floating br-mesh: enabled: true type: bridge @@ -37,6 +33,18 @@ parameters: enabled: true type: ovs_bridge mtu: ${_param:interface_mtu} - proto: static + float-to-ex: + enabled: true + type: ovs_port + mtu: ${_param:interface_mtu} + bridge: br-floating + br-ex: + enabled: true + type: bridge + mtu: ${_param:interface_mtu} address: ${_param:external_address} netmask: ${_param:opnfv_net_public_mask} + use_interfaces: + - ${_param:external_interface} + use_ovs_ports: + - float-to-ex |