Skip to content

Commit 3310f90

Browse files
committed
De-duplicate views and non-views zone configuration
1 parent 5d8a666 commit 3310f90

File tree

1 file changed

+13
-80
lines changed

1 file changed

+13
-80
lines changed

bind/config.sls

Lines changed: 13 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -168,94 +168,27 @@ bind_rndc_client_config:
168168
{%- endif %}
169169
{% endif %}
170170
171-
{% for zone, zone_data in salt['pillar.get']('bind:configured_zones', {}).items() -%}
172-
{%- set file = salt['pillar.get']("bind:available_zones:" + zone + ":file", false) %}
173-
{%- set zone_records = salt['pillar.get']('bind:available_zones:' + zone + ':records', {}) %}
174-
{# If we define RRs in pillar, we use the internal template to generate the zone file
175-
otherwise, we fallback to the old behaviour and use the declared file
176-
#}
177-
{%- set zone_source = 'salt://bind/files/zone.jinja' if zone_records != {} else 'salt://' ~ map.zones_source_dir ~ '/' ~ file %}
178-
{%- set serial_auto = salt['pillar.get']('bind:available_zones:' + zone + ':soa:serial', '') == 'auto' %}
179-
{% if file and zone_data['type'] == "master" -%}
180-
zones-{{ zone }}{{ '.include' if serial_auto else ''}}:
181-
file.managed:
182-
- name: {{ map.named_directory }}/{{ file }}{{ '.include' if serial_auto else ''}}
183-
- source: {{ zone_source }}
184-
- template: jinja
185-
{% if zone_records != {} %}
186-
- context:
187-
zone: zones-{{ zone }}
188-
soa: {{ salt['pillar.get']("bind:available_zones:" + zone + ":soa") }}
189-
records: {{ zone_records }}
190-
include: False
191-
{% endif %}
192-
- user: {{ salt['pillar.get']('bind:config:user', map.user) }}
193-
- group: {{ salt['pillar.get']('bind:config:group', map.group) }}
194-
- mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
195-
- watch_in:
196-
- service: bind
197-
- require:
198-
- file: named_directory
199-
200-
{% if serial_auto %}
201-
zones-{{ zone }}:
202-
module.wait:
203-
- name: dnsutil.serial
204-
- update: True
205-
- zone: zones-{{ zone }}
206-
- watch:
207-
- file: {{ map.named_directory }}/{{ file }}.include
208-
file.managed:
209-
- name: {{ map.named_directory }}/{{ file }}
210-
- require:
211-
- module: zones-{{ zone }}
212-
- source: {{ zone_source }}
213-
- template: jinja
214-
{% if zone_records != {} %}
215-
- context:
216-
zone: zones-{{ zone }}
217-
soa: {{ salt['pillar.get']("bind:available_zones:" + zone + ":soa") }}
218-
include: {{ file }}.include
219-
{% endif %}
220-
- user: {{ salt['pillar.get']('bind:config:user', map.user) }}
221-
- group: {{ salt['pillar.get']('bind:config:group', map.group) }}
222-
- mode: {{ salt['pillar.get']('bind:config:mode', '644') }}
223-
- watch_in:
224-
- service: bind
225-
- require:
226-
- file: named_directory
227-
{% endif %}
228-
229-
{% if zone_data['dnssec'] is defined and zone_data['dnssec'] -%}
230-
signed-{{ zone }}:
231-
cmd.run:
232-
- cwd: {{ map.named_directory }}
233-
- name: zonesigner -zone {{ zone }} {{ file }}
234-
- prereq:
235-
- file: zones-{{ zone }}
236-
{% endif %}
237-
238-
{% endif %}
239-
{% endfor %}
240-
241-
{%- for view, view_data in salt['pillar.get']('bind:configured_views', {}).items() %}
171+
{%- set views = salt['pillar.get']('bind:configured_views', {}) %}
172+
{%- do views.update({False: salt['pillar.get']('bind', {})}) %}{# process non-view zones in the same loop #}
173+
{%- for view, view_data in views.items() %}
174+
{%- set dash_view = '-' + view if view else '' %}
242175
{% for zone, zone_data in view_data.get('configured_zones', {}).items() -%}
243176
{%- set file = salt['pillar.get']("bind:available_zones:" + zone + ":file", false) %}
244177
{%- set zone_records = salt['pillar.get']('bind:available_zones:' + zone + ':records', {}) %}
245178
{# If we define RRs in pillar, we use the internal template to generate the zone file
246179
otherwise, we fallback to the old behaviour and use the declared file
247180
#}
248-
{%- set zone_source = 'salt://bind/zone.jinja' if zone_records != {} else 'salt://' ~ map.zones_source_dir ~ '/' ~ file %}
181+
{%- set zone_source = 'salt://bind/files/zone.jinja' if zone_records != {} else 'salt://' ~ map.zones_source_dir ~ '/' ~ file %}
249182
{%- set serial_auto = salt['pillar.get']('bind:available_zones:' + zone + ':soa:serial', '') == 'auto' %}
250183
{% if file and zone_data['type'] == 'master' -%}
251-
zones-{{ view }}-{{ zone }}{{ '.include' if serial_auto else ''}}:
184+
zones{{ dash_view }}-{{ zone }}{{ '.include' if serial_auto else ''}}:
252185
file.managed:
253186
- name: {{ map.named_directory }}/{{ file }}{{ '.include' if serial_auto else ''}}
254187
- source: {{ zone_source }}
255188
- template: jinja
256189
{% if zone_records != {} %}
257190
- context:
258-
zone: zones-{{ view }}-{{ zone }}
191+
zone: zones{{ dash_view }}-{{ zone }}
259192
soa: {{ salt['pillar.get']("bind:available_zones:" + zone + ":soa") }}
260193
records: {{ zone_records }}
261194
include: False
@@ -269,22 +202,22 @@ zones-{{ view }}-{{ zone }}{{ '.include' if serial_auto else ''}}:
269202
- file: named_directory
270203
271204
{% if serial_auto %}
272-
zones-{{ view }}-{{ zone }}:
205+
zones{{ dash_view }}-{{ zone }}:
273206
module.wait:
274207
- name: dnsutil.serial
275208
- update: True
276-
- zone: zones-{{ view }}-{{ zone }}
209+
- zone: zones{{ dash_view }}-{{ zone }}
277210
- watch:
278211
- file: {{ map.named_directory }}/{{ file }}.include
279212
file.managed:
280213
- name: {{ map.named_directory }}/{{ file }}
281214
- require:
282-
- module: zones-{{ view }}-{{ zone }}
215+
- module: zones{{ dash_view }}-{{ zone }}
283216
- source: {{ zone_source }}
284217
- template: jinja
285218
{% if zone_records != {} %}
286219
- context:
287-
zone: zones-{{ view }}-{{ zone }}
220+
zone: zones{{ dash_view }}-{{ zone }}
288221
soa: {{ salt['pillar.get']("bind:available_zones:" + zone + ":soa") }}
289222
include: {{ file }}.include
290223
{% endif %}
@@ -297,12 +230,12 @@ zones-{{ view }}-{{ zone }}:
297230
- file: named_directory
298231
{% endif %}
299232
{% if zone_data['dnssec'] is defined and zone_data['dnssec'] -%}
300-
signed-{{ view }}-{{ zone }}:
233+
signed{{ dash_view }}-{{ zone }}:
301234
cmd.run:
302235
- cwd: {{ map.named_directory }}
303236
- name: zonesigner -zone {{ zone }} {{ file }}
304237
- prereq:
305-
- file: zones-{{ view }}-{{ zone }}
238+
- file: zones{{ dash_view }}-{{ zone }}
306239
{% endif %}
307240
308241
{% endif %}

0 commit comments

Comments
 (0)