---
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# dns-unbound/defaults/main.yml

unbound_conf: "/var/unbound/etc/unbound.conf"
unbound_group: "wheel"

unbound_listen_on_default: False

unbound_listen_all: True

# NOTE - many of the below settings are shared with the dns-nsd role, and you
# may need to update them in the defaults of both.

site_name: placeholder-sitename
site_suffix: "{{ site_name }}.test"

headnode_dns: head1

# Management IP range from DHCP settings
mgmt_ipv4_first_octets: "192.168.200"
mgmt_name_reverse_unbound: "168.192.in-addr.arpa"

unbound_interfaces:
  - "{{ mgmt_ipv4_first_octets }}.1/24"

# node lists
head_lxd_list: []
physical_node_list: []

# DNS settings for NSD/Unbound
nsd_zones:
  - name: "{{ site_suffix }}"
    ipv4_first_octets: "{{ mgmt_ipv4_first_octets }}"
    name_reverse_unbound: "{{ mgmt_name_reverse_unbound }}"
    soa: ns1
    ns:
      - { name: ns1 }
    nodelists:
      - head_lxd_list
      - physical_node_list
    aliases:
      - { name: "apt-cache", dest: "{{ headnode_dns }}" }
      - { name: "cordloghost", dest: "{{ headnode_dns }}" }
      - { name: "consul", dest: "{{ headnode_dns }}" }
      - { name: "docker", dest: "{{ headnode_dns }}" }
      - { name: "mavenrepo", dest: "{{ headnode_dns }}" }
      - { name: "ns", dest: "{{ headnode_dns }}" }
      - { name: "ns1", dest: "{{ headnode_dns }}" }
      - { name: "onos-cord", dest: "{{ headnode_dns }}" }
      - { name: "onos-fabric", dest: "{{ headnode_dns }}" }
      - { name: "xos", dest: "{{ headnode_dns }}" }
      - { name: "xos-chameleon", dest: "{{ headnode_dns }}" }
      - { name: "xos-consul", dest: "{{ headnode_dns }}" }
      - { name: "xos-core", dest: "{{ headnode_dns }}" }
      - { name: "xos-gui", dest: "{{ headnode_dns }}" }
      - { name: "xos-tosca", dest: "{{ headnode_dns }}" }
      - { name: "xos-ws", dest: "{{ headnode_dns }}" }

