Document adding "extra" networks

This change moves the hidden `container_extra_networks` options to the
defaults file and adds a blerb regarding how this functions.

Change-Id: I4d7a9f05cf8382d0b83dd0ce574f7f4ba3783a63
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2018-08-20 17:23:49 -05:00
parent 32ac2a103e
commit ca6fe7df8d
3 changed files with 15 additions and 6 deletions

View File

@ -67,6 +67,11 @@ nspawn_networks:
# tunnel_address:
# bridge: eth0.10
#
# Extra interfaces that are wholly configured by the user can be set using the
# container extra networks option. This option follows all of the parameters of
# both `container_networks` and `nspawn_networks`.
container_extra_networks: {}
# In this example management storage and tunnel networks will be created and
# attached to the containers.
# + The management network will have a route created for its corresponding CIDR

View File

@ -74,8 +74,12 @@
{%- set start_commands = [] %}
{%- set seen_start_interfaces = [] %}
{%- for key, value in nspawn_combined_networks.items() %}
{%- set interface = value.bridge.split('br-')[-1] %}
{%- set mv_interface = 'mv-' + interface %}
{%- if value.interface is defined %}
{%- set mv_interface = value.interface %}
{%- else %}
{%- set interface = value.bridge.split('br-')[-1] %}
{%- set mv_interface = 'mv-' + interface %}
{%- endif %}
{%- if value.bridge not in seen_start_interfaces %}
{%- if value.private_device | default(false) | bool %}
{%- set _ = start_commands.append('-/sbin/ip link add dev ' + value.bridge + ' type dummy') %}
@ -118,11 +122,11 @@
vars:
systemd_networkd_prefix: "nspawn_host"
systemd_run_networkd: true
systemd_interface_cleanup: false
systemd_interface_cleanup: true
systemd_netdevs: |-
{% set seen_netdevs = [] %}
{% set _netdevs = [] %}
{% for _, value in (nspawn_networks | combine(container_extra_networks | default({}))).items() %}
{% for _, value in (nspawn_networks | combine(container_extra_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 %}
@ -136,7 +140,7 @@
{% set _networks = [] %}
{# All nspawn_networks and container_extra_networks will be iterated over. #}
{# If a device is found, a networkd config will be generated for it. #}
{% for _, value in (nspawn_networks | combine(container_extra_networks | default({}))).items() %}
{% for _, value in (nspawn_networks | combine(container_extra_networks)).items() %}
{% set netname = value.interface | default('mv-' + value.bridge.split('br-')[-1]) %}
{% set _network = {'interface': netname} %}
{% if netname not in seen_networks %}

View File

@ -21,4 +21,4 @@ nspawn_architecture_mapping:
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) }}"
nspawn_combined_networks: "{{ container_networks | combine(container_extra_networks) | combine(nspawn_networks) }}"