Browse Source

Add support for dns_etchosts (#6236)

pull/5781/head
Mateus Caruccio 4 years ago
committed by GitHub
parent
commit
1892cd65f6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 61 additions and 3 deletions
  1. 22
      docs/dns-stack.md
  2. 1
      docs/vars.md
  3. 14
      roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
  4. 4
      roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
  5. 19
      roles/kubernetes-apps/ansible/templates/nodelocaldns-config.yml.j2
  6. 4
      roles/kubernetes-apps/ansible/templates/nodelocaldns-daemonset.yml.j2

22
docs/dns-stack.md

@ -40,8 +40,6 @@ is not set, a default resolver is chosen (depending on cloud provider or 8.8.8.8
DNS servers to be added *after* the cluster DNS. Used by all ``resolvconf_mode`` modes. These serve as backup DNS servers to be added *after* the cluster DNS. Used by all ``resolvconf_mode`` modes. These serve as backup
DNS servers in early cluster deployment when no cluster DNS is available yet. DNS servers in early cluster deployment when no cluster DNS is available yet.
## DNS modes supported by Kubespray
### coredns_external_zones ### coredns_external_zones
Array of optional external zones to coredns forward queries to. It's injected into Array of optional external zones to coredns forward queries to. It's injected into
@ -69,9 +67,23 @@ coredns_external_zones:
or as INI or as INI
```ini ```ini
coredns_external_zones=[{"cache": 30,"zones":["example.com","example.io:453"],"nameservers":["1.1.1.1","2.2.2.2"]}]'
coredns_external_zones='[{"cache": 30,"zones":["example.com","example.io:453"],"nameservers":["1.1.1.1","2.2.2.2"]}]'
``` ```
### dns_etchosts (coredns)
Optional hosts file content to coredns use as /etc/hosts file. This will also be used by nodelocaldns, if enabled.
Example:
```yaml
dns_etchosts: |
192.168.0.100 api.example.com
192.168.0.200 ingress.example.com
```
## DNS modes supported by Kubespray
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
@ -182,6 +194,10 @@ nodelocaldns_external_zones:
- 192.168.0.53 - 192.168.0.53
``` ```
### dns_etchosts (nodelocaldns)
See [dns_etchosts](#dns_etchosts-coredns) above.
## Limitations ## Limitations
* Kubespray has yet ways to configure Kubedns addon to forward requests SkyDns can * Kubespray has yet ways to configure Kubedns addon to forward requests SkyDns can

1
docs/vars.md

@ -99,6 +99,7 @@ variables to match your requirements.
addition to Kubespray deployed DNS addition to Kubespray deployed DNS
* *nameservers* - Array of DNS servers configured for use by hosts * *nameservers* - Array of DNS servers configured for use by hosts
* *searchdomains* - Array of up to 4 search domains * *searchdomains* - Array of up to 4 search domains
* *dns_etchosts* - Content of hosts file for coredns and nodelocaldns
For more information, see [DNS For more information, see [DNS
Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.md). Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.md).

14
roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2

@ -17,6 +17,11 @@ data:
loadbalance loadbalance
cache {{ block['cache'] | default(5) }} cache {{ block['cache'] | default(5) }}
reload reload
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
} }
{% endfor %} {% endfor %}
{% endif %} {% endif %}
@ -50,4 +55,13 @@ data:
loop loop
reload reload
loadbalance loadbalance
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
} }
{% if dns_etchosts | default(None) %}
hosts: |
{{ dns_etchosts }}
{% endif %}

4
roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2

@ -110,3 +110,7 @@ spec:
items: items:
- key: Corefile - key: Corefile
path: Corefile path: Corefile
{% if dns_etchosts | default(None) %}
- key: hosts
path: hosts
{% endif %}

19
roles/kubernetes-apps/ansible/templates/nodelocaldns-config.yml.j2

@ -19,6 +19,11 @@ data:
forward . {{ block['nameservers'] | join(' ') }} forward . {{ block['nameservers'] | join(' ') }}
prometheus :9253 prometheus :9253
log log
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
} }
{% endfor %} {% endfor %}
{% endif %} {% endif %}
@ -36,6 +41,11 @@ data:
} }
prometheus :9253 prometheus :9253
health {{ nodelocaldns_ip }}:{{ nodelocaldns_health_port }} health {{ nodelocaldns_ip }}:{{ nodelocaldns_health_port }}
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
} }
in-addr.arpa:53 { in-addr.arpa:53 {
errors errors
@ -67,4 +77,13 @@ data:
bind {{ nodelocaldns_ip }} bind {{ nodelocaldns_ip }}
forward . {{ upstreamForwardTarget }} forward . {{ upstreamForwardTarget }}
prometheus :9253 prometheus :9253
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
} }
{% if dns_etchosts | default(None) %}
hosts: |
{{ dns_etchosts }}
{% endif %}

4
roles/kubernetes-apps/ansible/templates/nodelocaldns-daemonset.yml.j2

@ -79,6 +79,10 @@ spec:
items: items:
- key: Corefile - key: Corefile
path: Corefile path: Corefile
{% if dns_etchosts | default(None) %}
- key: hosts
path: hosts
{% endif %}
- name: xtables-lock - name: xtables-lock
hostPath: hostPath:
path: /run/xtables.lock path: /run/xtables.lock

Loading…
Cancel
Save