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 %}