Merge "Add ability to configure VLAN tag on patch port"
diff --git a/README.rst b/README.rst
index 45139c4..45c045d 100644
--- a/README.rst
+++ b/README.rst
@@ -1146,6 +1146,7 @@
bridge: br-ens7
port_type: patch
peer: prv-ens7
+ tag: 109 # [] to unset a tag
mtu: 65000
patch-br-prv-br-ens7:
enabled: true
@@ -1155,6 +1156,7 @@
type: ovs_port
port_type: patch
peer: ens7-prv
+ tag: 109
mtu: 65000
ens7:
enabled: true
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index f2691a5..c2d2a23 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -133,6 +133,13 @@
- name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} set interface {{ interface_name }} options:peer={{ interface.peer }}
- unless: ovs-vsctl show | grep -A 2 'Interface {{ interface_name }}' | grep {{ interface.peer }}
+{% if interface.tag is defined %}
+ovs_port_set_tag_{{ interface_name }}:
+ cmd.run:
+ - name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} set port {{ interface_name }} tag={{ interface.tag }}
+ - unless: ovs-vsctl get Port {{ interface_name }} tag | grep -Fx {{ interface.tag }}
+{%- endif %}
+
{%- else %}
linux_interfaces_include_{{ interface_name }}:
diff --git a/tests/pillar/network_openvswitch.sls b/tests/pillar/network_openvswitch.sls
new file mode 100644
index 0000000..56aa92d
--- /dev/null
+++ b/tests/pillar/network_openvswitch.sls
@@ -0,0 +1,49 @@
+linux:
+ system:
+ enabled: true
+ domain: local
+ network:
+ enabled: true
+ hostname: test01
+ fqdn: test01.local
+ network_manager: false
+ bridge: openvswitch
+ interface:
+ br-prv:
+ enabled: true
+ type: ovs_bridge
+ mtu: 65000
+ br-ens0:
+ enabled: true
+ type: ovs_bridge
+ proto: manual
+ mtu: 9000
+ use_interfaces:
+ - ens0
+ patch-br-ens0-br-prv:
+ enabled: true
+ name: ens0-prv
+ ovs_type: ovs_port
+ type: ovs_port
+ bridge: br-ens0
+ port_type: patch
+ peer: prv-ens0
+ tag: 107
+ mtu: 65000
+ patch-br-prv-br-ens0:
+ enabled: true
+ name: prv-ens0
+ bridge: br-prv
+ ovs_type: ovs_port
+ type: ovs_port
+ port_type: patch
+ peer: ens0-prv
+ tag: 107
+ mtu: 65000
+ ens0:
+ enabled: true
+ proto: manual
+ ovs_port_type: OVSPort
+ type: ovs_port
+ ovs_bridge: br-ens0
+ bridge: br-ens0