Compare commits

...

5 Commits

7 changed files with 76 additions and 21 deletions

View File

@ -13,7 +13,7 @@ Finally execute teh `run.sh` file.
## Requirements:
- The repository being used is for the Kubernetes version `1.28`, playbook will require to be updated in case the desired version is not `1.28.X`.
- The repository being used is for the Kubernetes version `1.29`, playbook will require to be updated in case the desired version is not `1.29.X`.
- **Remote** user with access to sudo
- Only intended for Debian based devices (arm/x64)
- DNS name from the hosts in the inventory must match the name of the node when using `kubectl get nodes` command.

View File

@ -1,6 +1,6 @@
masters:
hosts:
pi4.filter.home:
masterk.filter.home:
vars:
is_master: yes
desired_ansible_user: my_user
@ -16,4 +16,5 @@ slaves:
all:
vars:
install_kubeadm_version: "1.28.4-1.1"
install_kubeadm_version: "1.32"
install_kubeadm_version_patch: "2"

View File

@ -28,7 +28,7 @@ Order:
- Uncordon node [7]
----- Done with all hosts
- Upgrade CNI
- Upgrade CRD (this will not be covered on this script, so you do you)
```
[-3]

9
playbooks/checks.yaml Normal file
View File

@ -0,0 +1,9 @@
# kubelet.service
- name: Chck Kubelet is active
service:
name: kubelet
state: started
register: serviceDetails
until: serviceDetails.status.ActiveState == "active"
retries: 15
delay: 20

View File

@ -1,5 +1,5 @@
# Author: Oriol Filter
# 13/12/2023
# 13/01/2024
- name: Preparethings
order: inventory
@ -28,6 +28,22 @@
import_tasks: task_set_repos.yaml
become: true
- name: stuff
- name: Upgrade
import_tasks: task_upgrade.yaml
become: true
- name: Checks
import_tasks: checks.yaml
become: true
- name: sleep 20
pause:
seconds: 20
## Uncordon node
- name: Uncordon node
become: false
delegate_to: localhost
kubernetes.core.k8s_drain:
name: "{{ ansible_facts['fqdn'] }}"
state: uncordon

View File

@ -3,10 +3,11 @@
- name: Add Kubernetes GPG key
apt_key:
url: https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key
url: https://pkgs.k8s.io/core:/stable:/v{{ install_kubeadm_version }}/deb/Release.key
state: present
keyring: /etc/apt/keyrings/kubernetes-apt-keyring-kubernetes.gpg
- name: Add Kubernetes APT repository
- name: Add Kubernetes APTarepository
apt_repository:
repo: deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
repo: deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring-kubernetes.gpg] https://pkgs.k8s.io/core:/stable:/v{{ install_kubeadm_version }}/deb/ /
state: present

View File

@ -3,14 +3,48 @@
ansible.builtin.apt:
update_cache: yes
- name: Hold kubeadm
dpkg_selections:
name: kubeadm
selection: hold
- name: Hold kubelet
dpkg_selections:
name: kubelet
selection: hold
- name: Hold kubectl
dpkg_selections:
name: kubectl
selection: hold
#- name: Hold kubeadm kubelet kubectl
# shell: apt-mark hold kubeadm kubelet kubectl
- name: apt install kubeadm
ansible.builtin.apt:
allow_change_held_packages: true
name:
- kubeadm={{ install_kubeadm_version }}
- kubeadm={{ install_kubeadm_version }}.{{ install_kubeadm_version_patch }}-1.1
- name: Call `kubeadm upgrade`
- name: Call `kubeadm upgrade plan [master]`
shell: kubeadm upgrade plan
register: plan_output
when: is_master
- debug: msg="{{ plan_output.stdout.split('\n') }}"
when: is_master
# Master
- name: Call `kubeadm upgrade [master]`
shell: kubeadm upgrade apply v{{ install_kubeadm_version }}.{{ install_kubeadm_version_patch }} -y
when: is_master
# Slave
- name: Call `kubeadm upgrade [slave]`
shell: kubeadm upgrade node
when: not is_master
- name: Drain node
become: false
@ -28,12 +62,12 @@
ansible.builtin.apt:
update_cache: yes
- name: apt install kubelet && kubeadm
- name: apt install kubelet && kubectl
ansible.builtin.apt:
allow_change_held_packages: true
name:
- kubelet={{ install_kubeadm_version }}
- kubectl={{ install_kubeadm_version }}
- kubelet={{ install_kubeadm_version }}.{{ install_kubeadm_version_patch }}-1.1
- kubectl={{ install_kubeadm_version }}.{{ install_kubeadm_version_patch }}-1.1
- name: systemctl daemon-reload
ansible.builtin.systemd_service:
@ -58,10 +92,4 @@
- name: reboot
reboot:
## Uncordon node
- name: Uncordon node
become: false
delegate_to: localhost
kubernetes.core.k8s_drain:
name: "{{ ansible_facts['fqdn'] }}"
state: uncordon