756003a30e
Migrate older inline= syntax to pure yml syntax for module args as to be consistant with most of the rest of the tasks Cleanup some spacing in various files Rename some files named yaml to yml for consistancy
90 lines
2.8 KiB
YAML
90 lines
2.8 KiB
YAML
---
|
|
- name: ensure dnsmasq.d directory exists
|
|
file:
|
|
path: /etc/dnsmasq.d
|
|
state: directory
|
|
tags: bootstrap-os
|
|
|
|
- name: ensure dnsmasq.d-available directory exists
|
|
file:
|
|
path: /etc/dnsmasq.d-available
|
|
state: directory
|
|
tags: bootstrap-os
|
|
|
|
- name: check system nameservers
|
|
shell: awk '/^nameserver/ {print $NF}' /etc/resolv.conf
|
|
changed_when: False
|
|
register: system_nameservers
|
|
|
|
- name: init system_and_upstream_dns_servers
|
|
set_fact:
|
|
system_and_upstream_dns_servers: "{{ upstream_dns_servers|default([]) }}"
|
|
|
|
- name: combine upstream_dns_servers and system nameservers (only for docker_dns)
|
|
set_fact:
|
|
system_and_upstream_dns_servers: "{{ system_and_upstream_dns_servers | union(system_nameservers.stdout_lines) | unique }}"
|
|
when: system_nameservers.stdout != "" and resolvconf_mode != 'host_resolvconf'
|
|
|
|
- name: Write dnsmasq configuration
|
|
template:
|
|
src: 01-kube-dns.conf.j2
|
|
dest: /etc/dnsmasq.d-available/01-kube-dns.conf
|
|
mode: 0755
|
|
backup: yes
|
|
register: dnsmasq_config
|
|
|
|
- name: Stat dnsmasq configuration
|
|
stat:
|
|
path: /etc/dnsmasq.d/01-kube-dns.conf
|
|
register: sym
|
|
|
|
- name: Move previous configuration
|
|
command: mv /etc/dnsmasq.d/01-kube-dns.conf /etc/dnsmasq.d-available/01-kube-dns.conf.bak
|
|
changed_when: False
|
|
when: sym.stat.islnk is defined and sym.stat.islnk == False
|
|
|
|
- name: Enable dnsmasq configuration
|
|
file:
|
|
src: /etc/dnsmasq.d-available/01-kube-dns.conf
|
|
dest: /etc/dnsmasq.d/01-kube-dns.conf
|
|
state: link
|
|
|
|
- name: Create dnsmasq manifests
|
|
template:
|
|
src: "{{item.file}}"
|
|
dest: "{{kube_config_dir}}/{{item.file}}"
|
|
with_items:
|
|
- {file: dnsmasq-ds.yml, type: ds}
|
|
- {file: dnsmasq-svc.yml, type: svc}
|
|
register: manifests
|
|
when: inventory_hostname == groups['kube-master'][0]
|
|
|
|
#FIXME: remove manifests.changed condition if kubernetes/features#124 is implemented
|
|
- name: Delete existing dnsmasq daemonset
|
|
kube:
|
|
name: dnsmasq
|
|
namespace: "{{system_namespace}}"
|
|
kubectl: "{{bin_dir}}/kubectl"
|
|
resource: "ds"
|
|
filename: "{{kube_config_dir}}/{{item.item.file}}"
|
|
state: absent
|
|
with_items: "{{ manifests.results }}"
|
|
when: inventory_hostname == groups['kube-master'][0] and item.item.type == "ds" and (manifests.changed or dnsmasq_config.changed)
|
|
|
|
- name: Start Resources
|
|
kube:
|
|
name: dnsmasq
|
|
namespace: "{{system_namespace}}"
|
|
kubectl: "{{bin_dir}}/kubectl"
|
|
resource: "{{item.item.type}}"
|
|
filename: "{{kube_config_dir}}/{{item.item.file}}"
|
|
state: "{{item.changed | ternary('latest','present') }}"
|
|
with_items: "{{ manifests.results }}"
|
|
when: inventory_hostname == groups['kube-master'][0]
|
|
|
|
- name: Check for dnsmasq port (pulling image and running container)
|
|
wait_for:
|
|
host: "{{dns_server}}"
|
|
port: 53
|
|
delay: 5
|
|
when: inventory_hostname == groups['kube-node'][0]
|