self-hosting/roles/kubernetes/tasks/main.yml

68 lines
1.7 KiB
YAML
Raw Normal View History

---
- set_fact: kube_arch="{{ ansible_architecture | replace('x86_64', 'amd64') | replace('arm', 'armhf') }}"
- include: modules.yml
- include: keepalived.yml
when:
- "'k8s_masters' in group_names"
- groups.k8s_masters | length > 1
- name: Check all hosts can ping API floating IP
shell: "ping {{ api_floating_ip }} -c 1"
register: result
until: ('100% packet loss' not in result.stdout)
retries: 15
delay: 10
changed_when: no
- include: packages.yml
- include: kubeadm-token.yml
when: inventory_hostname == initial_master
- include: kubeadm-config.yml
# add masters
- block:
# docker-in-docker sometimes hangs pulling images so explicitly do it here
#- include: docker-images.yml
- include: kubeadm-master.yml
when: inventory_hostname == initial_master
# then we create the other masters
- include: kubeadm-multi.yml
when: inventory_hostname != initial_master
when: "'k8s_masters' in group_names"
- name: Wait for coredns to be running
shell: "kubectl get pods --namespace=kube-system | grep coredns | grep Running | wc -l"
register: result
until: ("2" in result.stdout)
retries: 180
delay: 10
changed_when: no
when: inventory_hostname == initial_master
- include: kubeadm-token.yml
when: inventory_hostname == initial_master
# add non masters
- include: kubeadm-worker.yml
when: "'k8s_masters' not in group_names"
# remove this wait and had a test to check all nodes are ready
- name: Wait for all nodes to be ready
shell: "kubectl get nodes {{ ansible_hostname }} | tail -n+2 | awk '{ print $2 }'"
register: result
until: ("Ready" in result.stdout)
retries: 36
delay: 10
changed_when: no
delegate_to: "{{ initial_master }}"
- debug: var=result