A little nicer way
diff --git a/opencontrail/common.sls b/opencontrail/common.sls
index 1ce1f8a..b3ae6a7 100644
--- a/opencontrail/common.sls
+++ b/opencontrail/common.sls
@@ -122,13 +122,5 @@
- require:
- file: /etc/contrail
{%- endif %}
-{%- endif %}
-{%- if common.version == 3.0 and pillar.opencontrail.get('compute', {}).get('dns', {}).get('forwarders', pillar.opencontrail.get('control', {}).get('dns', {}).get('forwarders', False) ) %}
-/etc/contrail/resolv.conf:
- file.managed:
- - source: salt://opencontrail/files/{{ common.version }}/resolv.conf
- - template: jinja
- - require:
- - file: /etc/contrail
{%- endif %}
diff --git a/opencontrail/compute.sls b/opencontrail/compute.sls
index c047a5a..092131e 100644
--- a/opencontrail/compute.sls
+++ b/opencontrail/compute.sls
@@ -59,6 +59,18 @@
- require:
- pkg: opencontrail_compute_packages
+{%- if compute.version == 3.0 and compute.get('dns', {}).get('forwarders', False) ) %}
+contrail_compute_resolv:
+ file.managed:
+ - name: /etc/contrail/resolv.conf
+ - source: salt://opencontrail/files/{{ compute.version }}/resolv.conf
+ - template: jinja
+ - defaults:
+ dns: {{ compute.get('dns', {})|yaml }}
+ - require:
+ - file: /etc/contrail
+{%- endif %}
+
{%- endif %}
/etc/contrail/agent_param:
diff --git a/opencontrail/control.sls b/opencontrail/control.sls
index d3a8bdb..6fad49d 100644
--- a/opencontrail/control.sls
+++ b/opencontrail/control.sls
@@ -64,6 +64,18 @@
- source: salt://opencontrail/files/{{ control.version }}/control/contrail-rndc.conf
- makedirs: True
+{%- if control.version == 3.0 and control.get('dns', {}).get('forwarders', False) ) %}
+contrail_control_resolv:
+ file.managed:
+ - name: /etc/contrail/resolv.conf
+ - source: salt://opencontrail/files/{{ control.version }}/resolv.conf
+ - template: jinja
+ - defaults:
+ dns: {{ control.get('dns', {})|yaml }}
+ - require:
+ - file: /etc/contrail
+{%- endif %}
+
{%- if control.version >= 3.0 and grains.get('init') != 'systemd' %}
/etc/contrail/supervisord_control_files/contrail-control-nodemgr.ini:
diff --git a/opencontrail/files/3.0/resolv.conf b/opencontrail/files/3.0/resolv.conf
index 780e155..36e2222 100644
--- a/opencontrail/files/3.0/resolv.conf
+++ b/opencontrail/files/3.0/resolv.conf
@@ -1,19 +1,4 @@
-{%- from "opencontrail/map.jinja" import control, compute with context %}
-# Custom resolv.conf file for contrail dns
-{%- if control.get('dns', {}).get('forwarders', []) %}
-# vDNS is handled on contrail-api nodes
-{%- set forwarders = control.dns.forwarders %}
-
-{%- elif compute.get('dns', {}).get('forwarders', []) %}
-# Default DNS is handled on the compute node
-{%- set forwarders = compute.dns.forwarders %}
-
-{%- else %}
-# No forwarders/nameservers found to configure
-{%- set forwarders = [] %}
-{%- endif %}
-
-{%- for host in forwarders %}
+{%- for host in dns.get('forwarders', []) %}
nameserver {{ host }}
{%- endfor %}