cluster-ansible/roles/node/tasks/kubernetes.yml

108 lines
2.9 KiB
YAML

- name: Disable swap in fstab
ansible.builtin.replace:
path: /etc/fstab
regexp: '^.*swap.*$'
replace: '# \0'
backup: true
- name: Disable swap.target
ansible.builtin.systemd_service:
name: swap.target
state: stopped
enabled: false
masked: true
- name: Disable swap for current session
ansible.builtin.command:
cmd: swapoff -a
register: swap_off
changed_when: swap_off.rc == 0
failed_when: swap_off.rc != 0
- name: Ensure /etc/apt/keyrings directory exists
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
mode: '0755'
- name: Get Kubernetes apt key
ansible.builtin.get_url:
url: "https://pkgs.k8s.io/core:/stable:/{{ kubernetes_version }}/deb/Release.key"
dest: /tmp/kubernetes-release.key
mode: '0644'
register: kubernetes_key
- name: Dearmor Kubernetes Release key
ansible.builtin.command:
cmd: "gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg /tmp/kubernetes-release.key"
args:
creates: /etc/apt/keyrings/kubernetes-apt-keyring.gpg
- name: Add Kubernetes apt repository
ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/{{ kubernetes_version }}/deb/ /"
filename: kubernetes
state: present
- name: Get CRI-O apt key
ansible.builtin.get_url:
url: "https://download.opensuse.org/repositories/isv:/cri-o:/stable:/{{ crio_version }}/deb/Release.key"
dest: /tmp/cri-o-release.key
mode: '0644'
register: crio_key
- name: Dearmor Kubernetes Release key
ansible.builtin.command:
cmd: "gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg /tmp/cri-o-release.key"
args:
creates: /etc/apt/keyrings/cri-o-apt-keyring.gpg
- name: Add CRI-O apt repository
ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://download.opensuse.org/repositories/isv:/cri-o:/stable:/{{ crio_version }}/deb/ /"
filename: crio
state: present
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
- name: Install CRI-O and Kubernetes components
ansible.builtin.apt:
name:
- cri-o
- kubelet
- kubeadm
- kubectl
state: present
- name: Enable overlay module
community.general.modprobe:
name: overlay
state: present
persistent: present
- name: Use systemd as cgroup driver for CRI-O
ansible.builtin.copy:
src: kubernetes/20-cgroup.conf
dest: /etc/crio/crio.conf.d/20-cgroup.conf
mode: "644"
- name: Use systemd as cgroup driver Kubelet
ansible.builtin.copy:
src: kubernetes/kubelet
dest: /etc/default/kubelet
mode: "644"
- name: Enable CRI-O
ansible.builtin.systemd_service:
name: crio
enabled: true
state: restarted
- name: Enable kubelet
ansible.builtin.systemd_service:
name: kubelet
enabled: true
state: restarted