aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mcp/config/scenario/os-odl-nofeature-noha.yaml2
-rwxr-xr-xmcp/config/states/opendaylight5
-rw-r--r--mcp/patches/0001-Apply-opendaylight-client-state-on-compute-only.patch39
-rw-r--r--mcp/patches/0001-Filter-out-OpenDaylight-client-on-computes.patch142
-rw-r--r--mcp/patches/patches.list2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j25
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml20
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