Merge "Allow to apply only overrides to the network interface"
This commit is contained in:
commit
52490d39d1
@ -132,7 +132,14 @@ systemd_netdevs: []
|
|||||||
# config_overrides:
|
# config_overrides:
|
||||||
# Network:
|
# Network:
|
||||||
# ConfigureWithoutCarrier: true
|
# ConfigureWithoutCarrier: true
|
||||||
|
# - interface: "bond1"
|
||||||
|
# network_overrides_only: True
|
||||||
|
# config_overrides:
|
||||||
|
# Network:
|
||||||
|
# VLAN:
|
||||||
|
# ? 100
|
||||||
|
# ? 200
|
||||||
|
# filename: 10-netplan-bond1
|
||||||
systemd_networks: []
|
systemd_networks: []
|
||||||
|
|
||||||
# The systemd resolved service can be setup using th following configuration.
|
# The systemd resolved service can be setup using th following configuration.
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Implemented flag ``network_overrides_only`` which is applicable to
|
||||||
|
``systemd_networks``. When this flag is used no .network or .link
|
||||||
|
defenition is created - only ``{{ filename }}.network.d/overrides.conf``
|
||||||
|
configuration file, which contains arbitrary data from ``config_overrides``
|
||||||
|
This can be used to extend existing interface configuration, which is not
|
||||||
|
managed by the role directly (ie managed through ``netplan``).
|
@ -166,7 +166,11 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
config_overrides: "{{ item.1.link_config_overrides | default(systemd_link_config_overrides) }}"
|
config_overrides: "{{ item.1.link_config_overrides | default(systemd_link_config_overrides) }}"
|
||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
with_indexed_items: "{{ _systemd_networks_named }}"
|
with_indexed_items: >-
|
||||||
|
{{
|
||||||
|
_systemd_networks_named | rejectattr('network_overrides_only', 'defined') +
|
||||||
|
_systemd_networks_named | selectattr('network_overrides_only', 'defined') | selectattr('network_overrides_only', 'false')
|
||||||
|
}}
|
||||||
notify:
|
notify:
|
||||||
- Update initramfs
|
- Update initramfs
|
||||||
- Restart systemd-networkd
|
- Restart systemd-networkd
|
||||||
@ -182,7 +186,11 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
config_overrides: "{{ item.1.config_overrides | default({}) }}"
|
config_overrides: "{{ item.1.config_overrides | default({}) }}"
|
||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
with_indexed_items: "{{ _systemd_networks_named }}"
|
with_indexed_items: >-
|
||||||
|
{{
|
||||||
|
_systemd_networks_named | rejectattr('network_overrides_only', 'defined') +
|
||||||
|
_systemd_networks_named | selectattr('network_overrides_only', 'defined') | selectattr('network_overrides_only', 'false')
|
||||||
|
}}
|
||||||
notify:
|
notify:
|
||||||
- Restart systemd-networkd
|
- Restart systemd-networkd
|
||||||
tags:
|
tags:
|
||||||
@ -195,7 +203,28 @@
|
|||||||
group: "root"
|
group: "root"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
state: directory
|
state: directory
|
||||||
loop: "{{ _systemd_networks_named | selectattr('static_routes', 'defined') | map(attribute='filename') }}"
|
loop: >-
|
||||||
|
{{
|
||||||
|
(
|
||||||
|
_systemd_networks_named | selectattr('static_routes', 'defined') +
|
||||||
|
_systemd_networks_named | selectattr('network_overrides_only', 'defined') | selectattr('network_overrides_only', 'true')
|
||||||
|
) | map(attribute='filename')
|
||||||
|
}}
|
||||||
|
|
||||||
|
- name: Create overrides files for network_overrides_only networks
|
||||||
|
openstack.config_template.config_template:
|
||||||
|
dest: "/etc/systemd/network/{{ item.1.filename }}.network.d/overrides.conf"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0644"
|
||||||
|
config_overrides: "{{ item.1.config_overrides | default({}) }}"
|
||||||
|
config_type: "ini"
|
||||||
|
with_indexed_items: >-
|
||||||
|
{{ _systemd_networks_named | selectattr('network_overrides_only', 'defined') | selectattr('network_overrides_only', 'true') }}
|
||||||
|
notify:
|
||||||
|
- Restart systemd-networkd
|
||||||
|
tags:
|
||||||
|
- systemd-networkd
|
||||||
|
|
||||||
- name: Place systemd-networkd routing policy rules
|
- name: Place systemd-networkd routing policy rules
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
@ -49,12 +49,25 @@
|
|||||||
- NetDev:
|
- NetDev:
|
||||||
Name: dummy2
|
Name: dummy2
|
||||||
Kind: dummy
|
Kind: dummy
|
||||||
|
- NetDev:
|
||||||
|
Name: dummy3
|
||||||
|
Kind: dummy
|
||||||
- NetDev:
|
- NetDev:
|
||||||
Name: br-test
|
Name: br-test
|
||||||
Kind: bridge
|
Kind: bridge
|
||||||
- NetDev:
|
- NetDev:
|
||||||
Name: br-test2
|
Name: br-test2
|
||||||
Kind: bridge
|
Kind: bridge
|
||||||
|
- NetDev:
|
||||||
|
Name: vlan-100
|
||||||
|
Kind: vlan
|
||||||
|
VLAN:
|
||||||
|
Id: 100
|
||||||
|
- NetDev:
|
||||||
|
Name: vlan-200
|
||||||
|
Kind: vlan
|
||||||
|
VLAN:
|
||||||
|
Id: 200
|
||||||
systemd_networks:
|
systemd_networks:
|
||||||
- interface: "dummy0"
|
- interface: "dummy0"
|
||||||
bond: "bond0"
|
bond: "bond0"
|
||||||
@ -88,6 +101,8 @@
|
|||||||
Alias: "dummy-bridge0"
|
Alias: "dummy-bridge0"
|
||||||
- interface: "dummy2"
|
- interface: "dummy2"
|
||||||
bridge: "br-test"
|
bridge: "br-test"
|
||||||
|
- interface: "dummy3"
|
||||||
|
bridge: "br-test2"
|
||||||
- interface: "br-test"
|
- interface: "br-test"
|
||||||
address: "10.1.0.1"
|
address: "10.1.0.1"
|
||||||
netmask: "255.255.255.0"
|
netmask: "255.255.255.0"
|
||||||
@ -95,3 +110,19 @@
|
|||||||
address: 10.2.0.1
|
address: 10.2.0.1
|
||||||
netmask: "255.255.255.0"
|
netmask: "255.255.255.0"
|
||||||
ipforward: true
|
ipforward: true
|
||||||
|
vlan:
|
||||||
|
- vlan-100
|
||||||
|
filename: 6-general-br-test2
|
||||||
|
- interface: "br-test2"
|
||||||
|
filename: 6-general-br-test2
|
||||||
|
network_overrides_only: true
|
||||||
|
config_overrides:
|
||||||
|
Network:
|
||||||
|
VLAN:
|
||||||
|
? vlan-200
|
||||||
|
- interface: "vlan-100"
|
||||||
|
address: 10.3.0.1
|
||||||
|
netmask: "255.255.255.0"
|
||||||
|
- interface: "vlan-200"
|
||||||
|
address: 10.4.0.1
|
||||||
|
netmask: "255.255.255.0"
|
||||||
|
@ -47,6 +47,20 @@
|
|||||||
- ansible_facts['br_test']['type'] == 'bridge'
|
- ansible_facts['br_test']['type'] == 'bridge'
|
||||||
- ansible_facts['br_test']['ipv4']['address'] == '10.1.0.1'
|
- ansible_facts['br_test']['ipv4']['address'] == '10.1.0.1'
|
||||||
- ansible_facts['br_test']['ipv4']['netmask'] == '255.255.255.0'
|
- ansible_facts['br_test']['ipv4']['netmask'] == '255.255.255.0'
|
||||||
|
- name: Vlan 100 check
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_facts['vlan_100']['active']
|
||||||
|
- ansible_facts['vlan_100']['type'] == 'ether'
|
||||||
|
- ansible_facts['vlan_100']['ipv4']['address'] == '10.3.0.1'
|
||||||
|
- ansible_facts['vlan_100']['ipv4']['netmask'] == '255.255.255.0'
|
||||||
|
- name: Vlan 200 check
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_facts['vlan_200']['active']
|
||||||
|
- ansible_facts['vlan_200']['type'] == 'ether'
|
||||||
|
- ansible_facts['vlan_200']['ipv4']['address'] == '10.4.0.1'
|
||||||
|
- ansible_facts['vlan_200']['ipv4']['netmask'] == '255.255.255.0'
|
||||||
- name: Check link config overrides
|
- name: Check link config overrides
|
||||||
shell: 'grep -wo "Alias" /etc/systemd/network/*br-dummy.link'
|
shell: 'grep -wo "Alias" /etc/systemd/network/*br-dummy.link'
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user