diff --git a/README.rst b/README.rst index e0f823d4..63d0dd5d 100644 --- a/README.rst +++ b/README.rst @@ -1471,6 +1471,7 @@ Open vSwitch Bridges: enabled: true name: br-ens7 type: ovs_bridge + ovs_ports: ens7 proto: manual mtu: 9000 use_interfaces: diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge index bf9b74f8..b52ba0a2 100644 --- a/linux/files/ovs_bridge +++ b/linux/files/ovs_bridge @@ -9,6 +9,10 @@ netmask {{ bridge.netmask }} {%- if bridge.gateway is defined %} gateway {{ bridge.gateway }} {%- endif %} +{%- if bridge.ovs_ports is defined %} +ovs_ports {{ bridge.ovs_ports }} +{%- endif %} {%- if bridge.ovs_options is defined %} ovs_options {{ bridge.ovs_options }} {%- endif %} + diff --git a/linux/files/ovs_port b/linux/files/ovs_port index 222ca8e4..98ae04d4 100644 --- a/linux/files/ovs_port +++ b/linux/files/ovs_port @@ -11,6 +11,10 @@ netmask {{ port.netmask }} {%- if port.gateway is defined %} gateway {{ port.gateway }} {%- endif %} +{%- if port.slaves is defined %} +ovs_bonds {{ port.slaves }} +{%- endif %} {%- if port.ovs_options is defined %} ovs_options {{ port.ovs_options }} {%- endif %} + diff --git a/linux/network/interface.sls b/linux/network/interface.sls index 6b0ab49a..1e539203 100644 --- a/linux/network/interface.sls +++ b/linux/network/interface.sls @@ -152,7 +152,7 @@ linux_interfaces_include_{{ interface_name }}: source /etc/network/interfaces.u/* ovs_bridge_{{ interface_name }}: - file.managed: + file.append: - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }} - makedirs: True - source: salt://linux/files/ovs_bridge @@ -176,6 +176,18 @@ ovs_bond_{{ interface_name }}: - require: - ovs_bridge_{{ interface.bridge }}_present +ovs_bond_persistent_{{ interface_name }}: + file.append: + - name: /etc/network/interfaces.u/ifcfg-{{ interface.bridge }} + - makedirs: True + - source: salt://linux/files/ovs_port + - template: jinja + - context: + port_name: {{ interface_name }} + port: {{ interface|yaml }} + - require: + - ovs_bridge_{{ interface.bridge }} + {%- elif interface.type == 'ovs_port' %} {%- if interface.get('port_type','internal') == 'patch' %} diff --git a/tests/pillar/network_openvswitch.sls b/tests/pillar/network_openvswitch.sls index e7b51f4c..38094bc8 100644 --- a/tests/pillar/network_openvswitch.sls +++ b/tests/pillar/network_openvswitch.sls @@ -18,6 +18,7 @@ linux: enabled: true type: ovs_bridge proto: manual + ovs_ports: ens0 mtu: 9000 use_interfaces: - ens0