You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.4 KiB
YAML

---
# Congifure docker for k8s.
# https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker
- include_tasks: configure_docker.yml
# Install kublet, kudeadm, and kubectl
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl
- include_tasks: debian_family.yml
when: ansible_os_family == "Debian"
- include_tasks: redhat_family.yml
when: ansible_os_family == "RedHat"
# Configure sysctl kernel modules
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#letting-iptables-see-bridged-traffic
- include_tasks: sysctl_and_kernel_modules.yml
- name: Ensure kubelet is started and enabled at boot.
service:
name: kubelet
state: started
enabled: true
become: true
# Disable swap
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin
- include_tasks: disable_swap.yml
# Pre-pull k8s status pods.
- name: Check the docker images currently on machine.
command: docker images
# We do this as root because the docker admin will not be able to until we
# reset the connection. We could just as well do a reset here.
become: true
register: docker_images
changed_when: false
- name: Pre-grab the container images for the static pods.
command: kubeadm config images pull
# We do this as root because the docker admin will not be able to until we
# reset the connection. We could just as well do a reset here.
become: true
changed_when: true
when: >
( kube_apiserver not in docker_images.stdout or
kube_controller_manager not in docker_images.stdout or
kube_scheduler not in docker_images.stdout or
kube_proxy not in docker_images.stdout or
etcd not in docker_images.stdout or
coredns not in docker_images.stdout or
pause not in docker_images.stdout )
# master
- include_tasks: master.yml
when: kubernetes_role == 'master'
# calico
# https://projectcalico.docs.tigera.io/getting-started/kubernetes/self-managed-onprem/onpremises
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network
- include_tasks: calico.yml
when: kubernetes_role == 'master'
# Join nodes to cluster.
# https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#join-nodes
- include_tasks: join_nodes.yml