Add config coredns_external_zones (#5280)

Allows to add custom zone resolving servers.
This commit is contained in:
Mateus Caruccio 2020-03-27 03:34:23 -03:00 committed by GitHub
parent e8c49b0090
commit 3237b2702f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 0 deletions

View file

@ -42,6 +42,36 @@ DNS servers in early cluster deployment when no cluster DNS is available yet.
## DNS modes supported by Kubespray ## DNS modes supported by Kubespray
### coredns_external_zones
Array of optional external zones to coredns forward queries to. It's injected into
`coredns`' config file before default kubernetes zone. Use it as an optimization for well-known zones and/or internal-only
domains, i.e. VPN for internal networks (default is unset)
Example:
```yaml
coredns_external_zones:
- zones:
- example.com
- example.io:1053
nameservers:
- 1.1.1.1
- 2.2.2.2
cache: 5
- zones:
- https://mycompany.local:4453
nameservers:
- 192.168.0.53
cache: 0
```
or as INI
```ini
coredns_external_zones=[{"cache": 30,"zones":["example.com","example.io:453"],"nameservers":["1.1.1.1","2.2.2.2"]}]'
```
You can modify how Kubespray sets up DNS for your cluster with the variables ``dns_mode`` and ``resolvconf_mode``. You can modify how Kubespray sets up DNS for your cluster with the variables ``dns_mode`` and ``resolvconf_mode``.
### dns_mode ### dns_mode

View file

@ -8,6 +8,18 @@ metadata:
addonmanager.kubernetes.io/mode: EnsureExists addonmanager.kubernetes.io/mode: EnsureExists
data: data:
Corefile: | Corefile: |
{% if coredns_external_zones is defined and coredns_external_zones|length > 0 %}
{% for block in coredns_external_zones %}
{{ block['zones'] | join(' ') }} {
        log
        errors
        forward . {{ block['nameservers'] | join(' ') }}
        loadbalance
        cache {{ block['cache'] | default(5) }}
        reload
    }
{% endfor %}
{% endif %}
.:53 { .:53 {
errors errors
health health