Compare commits
5 Commits
34376684c2
...
main
Author | SHA1 | Date | |
---|---|---|---|
646bb04402 | |||
65b1249d18 | |||
03bae65413 | |||
e822dda7c8 | |||
94ac3fcb4e |
@ -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.
|
||||
|
@ -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"
|
2
notes.md
2
notes.md
@ -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
9
playbooks/checks.yaml
Normal 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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user