Merge "Update Gemfile and Makefile configuration - One Gemfile for all formulas tests - Update Makefile for OpenStack tests"
diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge
new file mode 100644
index 0000000..bf9b74f
--- /dev/null
+++ b/linux/files/ovs_bridge
@@ -0,0 +1,14 @@
+auto {{ bridge_name }}
+iface {{ bridge_name }} inet {{ bridge.get('proto', 'static' if bridge.address is defined else 'manual') }}
+ovs_type {{ bridge.get('ovs_bridge_type', 'OVSBridge') }}
+mtu {{ bridge.get('mtu', '1500') }}
+{%- if bridge.address is defined %}
+address {{ bridge.address }}
+netmask {{ bridge.netmask }}
+{%- endif %}
+{%- if bridge.gateway is defined %}
+gateway {{ bridge.gateway }}
+{%- endif %}
+{%- if bridge.ovs_options is defined %}
+ovs_options {{ bridge.ovs_options }}
+{%- endif %}
diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
index 786f7c8..7cc4102 100644
--- a/linux/network/dpdk.sls
+++ b/linux/network/dpdk.sls
@@ -143,37 +143,6 @@
- name: "ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev{% if interface.tag is defined %} -- set port {{ interface_name }} tag={{ interface.tag }}{% endif %}"
- unless: "ovs-vsctl show | grep {{ interface_name }}"
- {# OVS dpdk needs ip address for vxlan termination on bridge br-prv #}
- {%- if interface.address is defined %}
-
-{# create override for openvswitch dependency for dpdk br-prv #}
-/etc/systemd/system/ifup@{{ interface_name }}.service.d/override.conf:
- file.managed:
- - makedirs: true
- - require:
- - cmd: linux_network_dpdk_bridge_interface_{{ interface_name }}
- - contents: |
- [Unit]
- Requires=openvswitch-switch.service
- After=openvswitch-switch.service
-
-{# enforce ip address and mtu for ovs dpdk br-prv #}
-/etc/network/interfaces.u/ifcfg-{{ interface_name }}:
- file.managed:
- - contents: |
- auto {{ interface_name }}
- iface {{ interface_name }} inet static
- address {{ interface.address }}
- netmask {{ interface.netmask }}
- {%- if interface.mtu is defined %}
- mtu {{ interface.mtu }}
- {%- endif %}
- - makedirs: True
- - require:
- - file: /etc/systemd/system/ifup@{{ interface_name }}.service.d/override.conf
-
- {%- endif %}
-
{%- elif interface.type == 'dpdk_ovs_port' and interface.bridge is defined %}
linux_network_dpdk_bridge_port_interface_{{ interface_name }}:
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index 34b8485..6086957 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -77,9 +77,45 @@
cmd.run:
- unless: ovs-vsctl show | grep -w {{ int_name }}
- name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} add-port {{ interface_name }} {{ int_name }}
-
{%- endif %}
{%- endfor %}
+
+linux_interfaces_include_{{ interface_name }}:
+ file.prepend:
+ - name: /etc/network/interfaces
+ - text: |
+ source /etc/network/interfaces.d/*
+ # Workaround for Upstream-Bug: https://github.com/saltstack/salt/issues/40262
+ source /etc/network/interfaces.u/*
+
+{# create override for openvswitch dependency for dpdk br-prv #}
+/etc/systemd/system/ifup@{{ interface_name }}.service.d/override.conf:
+ file.managed:
+ - makedirs: true
+ - require:
+ - cmd: linux_network_dpdk_bridge_interface_{{ interface_name }}
+ - contents: |
+ [Unit]
+ Requires=openvswitch-switch.service
+ After=openvswitch-switch.service
+
+dpdk_ovs_bridge_{{ interface_name }}:
+ file.managed:
+ - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
+ - makedirs: True
+ - source: salt://linux/files/ovs_bridge
+ - defaults:
+ bridge: {{ interface|yaml }}
+ bridge_name: {{ interface_name }}
+ - template: jinja
+
+dpdk_ovs_bridge_up_{{ interface_name }}:
+ cmd.run:
+ - name: ifup {{ interface_name }}
+ - require:
+ - file: dpdk_ovs_bridge_{{ interface_name }}
+ - file: linux_interfaces_final_include
+
{%- endif %}
{# it is not used for any interface with type preffix dpdk,eg. dpdk_ovs_port #}
@@ -89,7 +125,7 @@
{%- if interface.type == 'ovs_bridge' %}
-ovs_bridge_{{ interface_name }}:
+ovs_bridge_{{ interface_name }}_present:
openvswitch_bridge.present:
- name: {{ interface_name }}
@@ -104,16 +140,41 @@
cmd.run:
- unless: ovs-vsctl show | grep {{ int_name }}
- name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} add-port {{ interface_name }} {{ int_name }}
-
{%- endif %}
-
{%- endfor %}
+linux_interfaces_include_{{ interface_name }}:
+ file.prepend:
+ - name: /etc/network/interfaces
+ - text: |
+ source /etc/network/interfaces.d/*
+ # Workaround for Upstream-Bug: https://github.com/saltstack/salt/issues/40262
+ source /etc/network/interfaces.u/*
+
+ovs_bridge_{{ interface_name }}:
+ file.managed:
+ - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
+ - makedirs: True
+ - source: salt://linux/files/ovs_bridge
+ - defaults:
+ bridge: {{ interface|yaml }}
+ bridge_name: {{ interface_name }}
+ - template: jinja
+
+ovs_bridge_up_{{ interface_name }}:
+ cmd.run:
+ - name: ifup {{ interface_name }}
+ - require:
+ - file: ovs_bridge_{{ interface_name }}
+ - file: linux_interfaces_final_include
+
+
+
{%- elif interface.type == 'ovs_port' %}
{%- if interface.get('port_type','internal') == 'patch' %}
-ovs_port_{{ interface_name }}:
+ovs_port_{{ interface_name }}_present:
openvswitch_port.present:
- name: {{ interface_name }}
- bridge: {{ interface.bridge }}
@@ -121,7 +182,7 @@
{%- if dpdk_enabled and network.interface.get(interface.bridge, {}).get('type', 'ovs_bridge') == 'dpdk_ovs_bridge' %}
- cmd: linux_network_dpdk_bridge_interface_{{ interface.bridge }}
{%- else %}
- - openvswitch_bridge: ovs_bridge_{{ interface.bridge }}
+ - openvswitch_bridge: ovs_bridge_{{ interface.bridge }}_present
{%- endif %}
ovs_port_set_type_{{ interface_name }}:
@@ -159,28 +220,16 @@
- defaults:
port: {{ interface|yaml }}
port_name: {{ interface_name }}
+ auto: ""
+ iface_inet: ""
- template: jinja
-ovs_port_{{ interface_name }}_line1:
- file.replace:
- - name: /etc/network/interfaces
- - pattern: auto {{ interface_name }}$
- - repl: ""
-
-ovs_port_{{ interface_name }}_line2:
- file.replace:
- - name: /etc/network/interfaces
- - pattern: 'iface {{ interface_name }} inet .*'
- - repl: ""
-
ovs_port_up_{{ interface_name }}:
cmd.run:
- name: ifup {{ interface_name }}
- require:
- file: ovs_port_{{ interface_name }}
- - file: ovs_port_{{ interface_name }}_line1
- - file: ovs_port_{{ interface_name }}_line2
- - openvswitch_bridge: ovs_bridge_{{ interface.bridge }}
+ - openvswitch_bridge: ovs_bridge_{{ interface.bridge }}_present
- file: linux_interfaces_final_include
{%- endif %}
diff --git a/linux/system/repo.sls b/linux/system/repo.sls
index dd41afe..03bb72d 100644
--- a/linux/system/repo.sls
+++ b/linux/system/repo.sls
@@ -1,5 +1,10 @@
{%- from "linux/map.jinja" import system with context %}
{%- if system.enabled %}
+{%- if grains['saltversioninfo'] < [2018, 3] %}
+{%- set refresh_cmd = 'refresh_db' %}
+{%- else %}
+{%- set refresh_cmd = 'refresh' %}
+{%- endif %}
{% if system.pkgs %}
linux_repo_prereq_pkgs:
@@ -113,7 +118,7 @@
{%- if repo.get('enabled', True) %}
linux_repo_{{ name }}:
pkgrepo.managed:
- - refresh_db: False
+ - {{ refresh_cmd }}: False
- require_in:
- refresh_db
{%- if repo.ppa is defined %}
@@ -146,7 +151,7 @@
{%- else %}
linux_repo_{{ name }}:
pkgrepo.absent:
- - refresh_db: False
+ - {{ refresh_cmd }}: False
- require:
- file: /etc/apt/apt.conf.d/99proxies-salt-{{ name }}
- require_in:
@@ -177,7 +182,7 @@
{%- if not repo.get('default', False) %}
linux_repo_{{ name }}:
pkgrepo.managed:
- - refresh_db: False
+ - {{ refresh_cmd }}: False
- require_in:
- refresh_db
- name: {{ name }}
@@ -194,7 +199,7 @@
{%- endif %}
{%- else %}
pkgrepo.absent:
- - refresh_db: False
+ - {{ refresh_cmd }}: False
- require_in:
- refresh_db
- name: {{ repo.source }}