diff --git a/docs/dictionary/en-custom.txt b/docs/dictionary/en-custom.txt index c7b548e78c..6cd55f57cc 100644 --- a/docs/dictionary/en-custom.txt +++ b/docs/dictionary/en-custom.txt @@ -283,6 +283,7 @@ modprobe mountpoints mtcylje mtu +multiline multinode multipath multus diff --git a/roles/dnsmasq/README.md b/roles/dnsmasq/README.md index 34dfba3609..e2d7b49a54 100644 --- a/roles/dnsmasq/README.md +++ b/roles/dnsmasq/README.md @@ -29,11 +29,11 @@ supported in libvirt). * `cifmw_dnsmasq_listen_addresses`: (List) List of IP addresses on which dnsmasq should be enabled. Defaults to `[]`. * `cifmw_dnsmasq_enable_dns`: (Bool) Toggle to enable DNS features of dnsmasq. Defaults to `false`. * `cifmw_dnsmasq_addresses`: (List) Specify a list of IP addresses to return for any host in the given domains. Defaults to `[]`. -* `cifmw_dnsmasq_domain_name`: (String) DNS domain name used for the DHCP server. Defaults to `''`. #### Ranges mapping * `label`: (String) Network label ("tag" in dnsmasq manual). +* `domain`: (String) domain name associated to the dhcp range. * `start_v4`: (String) IPv4 starting IP. * `start_v6`: (String) IPv6 starting IP. * `prefix_length_v4`: (Int) IPv4 prefix length. Defaults to `24`. diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml index d6b709be4f..aba1ed953d 100644 --- a/roles/dnsmasq/defaults/main.yml +++ b/roles/dnsmasq/defaults/main.yml @@ -26,4 +26,3 @@ cifmw_dnsmasq_interfaces: [] cifmw_dnsmasq_listen_addresses: [] cifmw_dnsmasq_enable_dns: false cifmw_dnsmasq_addresses: [] -cifmw_dnsmasq_domain_name: '' diff --git a/roles/dnsmasq/molecule/default/converge.yml b/roles/dnsmasq/molecule/default/converge.yml index 653dc3cb1f..64b4a15685 100644 --- a/roles/dnsmasq/molecule/default/converge.yml +++ b/roles/dnsmasq/molecule/default/converge.yml @@ -21,14 +21,10 @@ cifmw_dnsmasq_enable_dns: true cifmw_dnsmasq_interfaces: - mol-test-1 - cifmw_dnsmasq_addresses: - - fqdn: "api.ocp.openstack.lab" - address: "192.168.122.2" - - fqdn: ".apps.ocp.openstack.lab" - address: "192.168.122.3" + - mol-test-2 cifmw_dnsmasq_listen_addresses: + - "192.168.253.9" - "192.168.254.9" - cifmw_dnsmasq_domain_name: "ocp.openstack.lab" cifmw_dnsmasq_raw_config: |- dhcp-authoritative log-dhcp @@ -44,6 +40,7 @@ - label: ian start_v4: 192.168.254.10 start_v6: "2345:0425:2CA1::0567:5673:23b5" + domain: "starwars.lan" options: - "3,192.168.254.1" - "option6:dns-server,[2345:0425:2CA1::0567:5673:0001]" @@ -61,6 +58,7 @@ cifmw_dnsmasq_network_definition: ranges: - label: ian + domain: "startrek.lan" start_v4: 192.168.253.10 prefix_length_v4: 26 start_v6: "2345:0426:2CA1::0567:5673:23b5" diff --git a/roles/dnsmasq/templates/dns.conf.j2 b/roles/dnsmasq/templates/dns.conf.j2 index 22b0d33aca..6c21d5b578 100644 --- a/roles/dnsmasq/templates/dns.conf.j2 +++ b/roles/dnsmasq/templates/dns.conf.j2 @@ -4,11 +4,6 @@ server={{ forwarder }} {% endfor %} -{% if cifmw_dnsmasq_domain_name != '' -%} -domain={{ cifmw_dnsmasq_domain_name }} -local=/{{ cifmw_dnsmasq_domain_name }}/ -{% endif %} - {% for entry in cifmw_dnsmasq_addresses -%} address=/{{ entry.fqdn }}/{{ entry.address }} {% endfor %} diff --git a/roles/dnsmasq/templates/network.conf.j2 b/roles/dnsmasq/templates/network.conf.j2 index 2e5fda868b..6b661676ad 100644 --- a/roles/dnsmasq/templates/network.conf.j2 +++ b/roles/dnsmasq/templates/network.conf.j2 @@ -1,16 +1,22 @@ # Managed by ci-framework/dnsmasq -{% for range in cifmw_dnsmasq_network_definition['ranges'] %} -{% if range.start_v4 is defined and range.start_v4 | length > 0 %} -dhcp-range=set:{{ range.label }},{{ range.start_v4 }},static,{{ (range.start_v4 + "/" + range.prefix_length_v4 | default(24) | string) | ansible.utils.ipaddr('netmask') }},{{ range.ttl | default('1h') }} +{% for range in cifmw_dnsmasq_network_definition['ranges'] -%} +{% if range.start_v4 is defined and range.start_v4 | length > 0 -%} +dhcp-range=set:{{ range.label }},{{ range.start_v4 }},static,{{ (range.start_v4 + "/" + range.prefix_length_v4 | default(24) | string) | ansible.utils.ipaddr('netmask') }},{{ range.ttl | default('1h') }} +{% if range.domain is defined and range.domain | length > 0 -%} +domain={{ range.domain }},{{ range.start_v4 }}/{{ range.prefix_length_v4 | default('24') }},local +{% endif %} {% endif %} -{% if range.start_v6 is defined and range.start_v6 | length > 0 %} +{% if range.start_v6 is defined and range.start_v6 | length > 0 -%} dhcp-range=set:{{ range.label }},{{ range.start_v6 }},static,{{ range.prefix_length_v6 | default('64') }},{{ range.ttl | default('1h') }} +{% if range.domain is defined and range.domain | length > 0 -%} +domain={{ range.domain }},{{ range.start_v6 }}/{{ range.prefix_length_v6 | default('64') }},local +{% endif %} {% endif %} -{% for option in range['options'] | default([]) %} +{% for option in range['options'] | default([]) -%} dhcp-option=tag:{{ range.label }},{{ option }} {% endfor %} -{% for option in range['options_force'] | default([]) %} +{% for option in range['options_force'] | default([]) -%} dhcp-option-force=tag:{{ range.label }},{{ option }} {% endfor %} {% endfor %}