Skip to content

Commit

Permalink
Add support for dns_etchosts (#6236)
Browse files Browse the repository at this point in the history
  • Loading branch information
caruccio authored Jun 26, 2020
1 parent d3ca9d1 commit 1892cd6
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 3 deletions.
22 changes: 19 additions & 3 deletions docs/dns-stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 in early cluster deployment when no cluster DNS is available yet.

## DNS modes supported by Kubespray

### coredns_external_zones

Array of optional external zones to coredns forward queries to. It's injected into
Expand Down Expand Up @@ -69,9 +67,23 @@ coredns_external_zones:
or as 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``.
### dns_mode
Expand Down Expand Up @@ -182,6 +194,10 @@ nodelocaldns_external_zones:
- 192.168.0.53
```

### dns_etchosts (nodelocaldns)

See [dns_etchosts](#dns_etchosts-coredns) above.

## Limitations

* Kubespray has yet ways to configure Kubedns addon to forward requests SkyDns can
Expand Down
1 change: 1 addition & 0 deletions docs/vars.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ variables to match your requirements.
addition to Kubespray deployed DNS
* *nameservers* - Array of DNS servers configured for use by hosts
* *searchdomains* - Array of up to 4 search domains
* *dns_etchosts* - Content of hosts file for coredns and nodelocaldns

For more information, see [DNS
Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.md).
Expand Down
14 changes: 14 additions & 0 deletions roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ data:
loadbalance
cache {{ block['cache'] | default(5) }}
reload
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
}
{% endfor %}
{% endif %}
Expand Down Expand Up @@ -50,4 +55,13 @@ data:
loop
reload
loadbalance
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
}
{% if dns_etchosts | default(None) %}
hosts: |
{{ dns_etchosts }}
{% endif %}
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,7 @@ spec:
items:
- key: Corefile
path: Corefile
{% if dns_etchosts | default(None) %}
- key: hosts
path: hosts
{% endif %}
19 changes: 19 additions & 0 deletions roles/kubernetes-apps/ansible/templates/nodelocaldns-config.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ data:
forward . {{ block['nameservers'] | join(' ') }}
prometheus :9253
log
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
}
{% endfor %}
{% endif %}
Expand All @@ -36,6 +41,11 @@ data:
}
prometheus :9253
health {{ nodelocaldns_ip }}:{{ nodelocaldns_health_port }}
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
}
in-addr.arpa:53 {
errors
Expand Down Expand Up @@ -67,4 +77,13 @@ data:
bind {{ nodelocaldns_ip }}
forward . {{ upstreamForwardTarget }}
prometheus :9253
{% if dns_etchosts | default(None) %}
hosts /etc/coredns/hosts {
fallthrough
}
{% endif %}
}
{% if dns_etchosts | default(None) %}
hosts: |
{{ dns_etchosts }}
{% endif %}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ spec:
items:
- key: Corefile
path: Corefile
{% if dns_etchosts | default(None) %}
- key: hosts
path: hosts
{% endif %}
- name: xtables-lock
hostPath:
path: /run/xtables.lock
Expand Down

0 comments on commit 1892cd6

Please sign in to comment.