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
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
|