Files
homelab-infrastructure/ansible/roles/kubernetes_control_plane/tasks/main.yaml
T

66 lines
1.6 KiB
YAML

- name: Install kube-vip
ansible.builtin.import_tasks: kube-vip.yaml
- name: Initialise Kubernetes cluster
ansible.builtin.command:
argv:
- kubeadm
- init
- --pod-network-cidr=172.16.0.0/16
- --control-plane-endpoint={{ vip_address }}:6443
- --upload-certs
args:
creates: /etc/kubernetes/admin.conf
run_once: true
- name: Generate Join Command
ansible.builtin.command:
argv:
- kubeadm
- token
- create
- --print-join-command
register: kubernetes_control_plane_join_command
run_once: true
changed_when: true
- name: Get Certificate Key
ansible.builtin.shell:
cmd: set -o pipefail && kubeadm init phase upload-certs --upload-certs | tail -n 1
register: kubernetes_control_plane_certificate_key
run_once: true
changed_when: true
- name: Join Additional Control Planes
ansible.builtin.command:
cmd: "{{ kubernetes_control_plane_join_command.stdout }} --control-plane --certificate-key {{ kubernetes_control_plane_certificate_key.stdout }}"
args:
creates: /etc/kubernetes/admin.conf
- name: Copy Kubernetes Admin Config
ansible.builtin.command: "{{ item }}"
loop:
- mkdir -p $HOME/.kube
- cp /etc/kubernetes/admin.conf $HOME/.kube/config
- chown $(id -u):$(id -g) $HOME/.kube/config
args:
creates: $HOME/.kube/config
- name: Untaint control planes
ansible.builtin.import_tasks: untaint.yaml
- name: Install Kubernetes CLI
ansible.builtin.apt:
pkg:
- kubectl
state: present
- name: Install Helm
ansible.builtin.import_tasks: helm.yaml
- name: Install Cilium CNI
ansible.builtin.import_tasks: cilium.yaml