diff options
8 files changed, 174 insertions, 48 deletions
diff --git a/mcp/config/scenario/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml index 96d4bcc27..260e1bacb 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 diff --git a/mcp/config/states/opendaylight b/mcp/config/states/opendaylight index 515420a7e..d00a77352 100755 --- a/mcp/config/states/opendaylight +++ b/mcp/config/states/opendaylight @@ -21,4 +21,7 @@ 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'" + +# settle down neutron api and agents +sleep 180 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..f3ed7847d --- /dev/null +++ b/mcp/patches/0001-Filter-out-OpenDaylight-client-on-computes.patch @@ -0,0 +1,142 @@ +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +: 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..bb0cf65 100644 +--- a/neutron/opendaylight/client.sls ++++ b/neutron/opendaylight/client.sls +@@ -9,21 +9,16 @@ python-networking-odl: + + {%- if not grains.get('noservices', False) %} + +-ovs_set_manager: +- 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 }}' +- + 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: +@@ -32,4 +27,9 @@ neutron_odl_ovs_hostconfig: + - require: + - pkg: python-networking-odl + ++ovs_set_manager: ++ cmd.run: ++ - 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-common-ha/openstack_init.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2 index 3b890da03..9db8f35d2 100644 --- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2 @@ -249,6 +249,11 @@ parameters: linux: system: repo: + uca-staging: + source: "deb http://ppa.launchpad.net/ubuntu-cloud-archive/${_param:openstack_version}-staging/ubuntu xenial main" + architectures: amd64 + key_id: 9F68104E + key_server: keyserver.ubuntu.com uca: source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main" architectures: amd64 diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml index 46d7af4a8..cef0b5318 100644 --- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml +++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml @@ -94,6 +94,13 @@ parameters: linux: system: repo: + uca-staging: + # yamllint disable rule:line-length + source: "deb http://ppa.launchpad.net/ubuntu-cloud-archive/${_param:openstack_version}-staging/ubuntu xenial main" + architectures: amd64 + key_id: 9F68104E + key_server: keyserver.ubuntu.com + # yamllint enable rule:line-length uca: source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main" architectures: amd64 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 |