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:
|
||||
# Network:
|
||||
# ConfigureWithoutCarrier: true
|
||||
|
||||
# - interface: "bond1"
|
||||
# network_overrides_only: True
|
||||
# config_overrides:
|
||||
# Network:
|
||||
# VLAN:
|
||||
# ? 100
|
||||
# ? 200
|
||||
# filename: 10-netplan-bond1
|
||||
systemd_networks: []
|
||||
|
||||
# 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"
|
||||
config_overrides: "{{ item.1.link_config_overrides | default(systemd_link_config_overrides) }}"
|
||||
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:
|
||||
- Update initramfs
|
||||
- Restart systemd-networkd
|
||||
@ -182,7 +186,11 @@
|
||||
mode: "0644"
|
||||
config_overrides: "{{ item.1.config_overrides | default({}) }}"
|
||||
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:
|
||||
- Restart systemd-networkd
|
||||
tags:
|
||||
@ -195,7 +203,28 @@
|
||||
group: "root"
|
||||
mode: "0755"
|
||||
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
|
||||
ansible.builtin.template:
|
||||
|
@ -49,12 +49,25 @@
|
||||
- NetDev:
|
||||
Name: dummy2
|
||||
Kind: dummy
|
||||
- NetDev:
|
||||
Name: dummy3
|
||||
Kind: dummy
|
||||
- NetDev:
|
||||
Name: br-test
|
||||
Kind: bridge
|
||||
- NetDev:
|
||||
Name: br-test2
|
||||
Kind: bridge
|
||||
- NetDev:
|
||||
Name: vlan-100
|
||||
Kind: vlan
|
||||
VLAN:
|
||||
Id: 100
|
||||
- NetDev:
|
||||
Name: vlan-200
|
||||
Kind: vlan
|
||||
VLAN:
|
||||
Id: 200
|
||||
systemd_networks:
|
||||
- interface: "dummy0"
|
||||
bond: "bond0"
|
||||
@ -88,6 +101,8 @@
|
||||
Alias: "dummy-bridge0"
|
||||
- interface: "dummy2"
|
||||
bridge: "br-test"
|
||||
- interface: "dummy3"
|
||||
bridge: "br-test2"
|
||||
- interface: "br-test"
|
||||
address: "10.1.0.1"
|
||||
netmask: "255.255.255.0"
|
||||
@ -95,3 +110,19 @@
|
||||
address: 10.2.0.1
|
||||
netmask: "255.255.255.0"
|
||||
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']['ipv4']['address'] == '10.1.0.1'
|
||||
- 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
|
||||
shell: 'grep -wo "Alias" /etc/systemd/network/*br-dummy.link'
|
||||
changed_when: false
|
||||
|
Loading…
x
Reference in New Issue
Block a user