From 4552c56f2baaa4896ff72694b23b10254f6a0f64 Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Thu, 31 May 2018 13:04:29 -0500 Subject: [PATCH] Add a single variable for combined networks The combined networks variable will allow deployers to set basic container networks, default nspawn networks, and any "extra" networks a deployer may need outside of a standard build. Change-Id: I5346fdf81967d6eb7f69e61a187166c076ca4b60 Signed-off-by: Kevin Carter --- handlers/main.yml | 2 +- tasks/nspawn_networking.yml | 10 +++++----- vars/main.yml | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 7991de2..7a2aba6 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -34,7 +34,7 @@ daemon_reload: true when: - item.value.enable_dhcp | default(false) | bool - with_dict: "{{ container_networks | combine(nspawn_networks) }}" + with_dict: "{{ nspawn_combined_networks }}" - name: Remove policy-rc file: diff --git a/tasks/nspawn_networking.yml b/tasks/nspawn_networking.yml index b2b1972..d96bc2d 100644 --- a/tasks/nspawn_networking.yml +++ b/tasks/nspawn_networking.yml @@ -73,7 +73,7 @@ execstarts: |- {%- set start_commands = [] %} {%- set seen_start_interfaces = [] %} - {%- for key, value in (container_networks | combine(nspawn_networks)).items() %} + {%- for key, value in nspawn_combined_networks.items() %} {%- set interface = value.bridge.split('br-')[-1] %} {%- set mv_interface = 'mv-' + interface %} {%- if value.bridge not in seen_start_interfaces %} @@ -113,7 +113,7 @@ systemd_netdevs: |- {% set seen_netdevs = [] %} {% set _netdevs = [] %} - {% for _, value in (container_networks | combine(nspawn_networks)).items() %} + {% for _, value in nspawn_combined_networks.items() %} {% set netname = value.interface | default('mv-' + value.bridge.split('br-')[-1]) %} {% set _netdev = {'NetDev': {'Name': netname, 'Kind': 'macvlan'}, 'MACVLAN': {'Mode': 'bridge'}} %} {% if netname not in seen_netdevs %} @@ -125,7 +125,7 @@ systemd_networks: |- {% set seen_networks = [] %} {% set _networks = [] %} - {% for _, value in (container_networks | combine(nspawn_networks)).items() %} + {% for _, value in nspawn_combined_networks.items() %} {% set netname = value.interface | default('mv-' + value.bridge.split('br-')[-1]) %} {% set _network = {'interface': netname} %} {% if netname not in seen_networks %} @@ -156,7 +156,7 @@ template: src: "dnsmasq-config.conf.j2" dest: "/etc/dnsmasq.d/dnsmasq-{{ 'mv-' + item.value.bridge.split('br-')[-1] }}.conf" - with_dict: "{{ container_networks | combine(nspawn_networks) }}" + with_dict: "{{ nspawn_combined_networks }}" when: - item.value.enable_dhcp | default(false) | bool notify: @@ -205,7 +205,7 @@ - dnsmasq_var.value.enable_dhcp | default(false) | bool - dnsmasq_var.value.address is defined - dnsmasq_var.value.netmask is defined - with_dict: "{{ container_networks | combine(nspawn_networks) }}" + with_dict: "{{ nspawn_combined_networks }}" loop_control: loop_var: dnsmasq_var tags: diff --git a/vars/main.yml b/vars/main.yml index 258b061..70250a0 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -19,3 +19,6 @@ nspawn_architecture_mapping: ppc64le: ppc64el s390x: s390x armv7l: armhf + +# A combined hash of all networks to be used within a deployment. +nspawn_combined_networks: "{{ container_networks | combine(container_extra_networks | default({})) | combine(nspawn_networks) }}"