diff --git a/docs/operations/upgrades.md b/docs/operations/upgrades.md index a8bf79c94..2fec2b061 100644 --- a/docs/operations/upgrades.md +++ b/docs/operations/upgrades.md @@ -437,3 +437,5 @@ Nodes will be rebooted when there are package upgrades (`system_upgrade_reboot: This can be changed to `always` or `never`. Note: Downloads will happen twice unless `system_upgrade_reboot` is `never`. + +Debian based nodes can be cleaned of packages to reduce disk space usage with `system_upgrade_autoclean: true` diff --git a/roles/kubespray_defaults/defaults/main/main.yml b/roles/kubespray_defaults/defaults/main/main.yml index 36f07c1d7..3a0415e86 100644 --- a/roles/kubespray_defaults/defaults/main/main.yml +++ b/roles/kubespray_defaults/defaults/main/main.yml @@ -808,6 +808,7 @@ sysctl_ignore_unknown_keys: false system_upgrade: false system_upgrade_reboot: on-upgrade # never, always +system_upgrade_autoclean: false # Enables or disables the scheduler plugins. scheduler_plugins_enabled: false diff --git a/roles/upgrade/system-upgrade/tasks/apt.yml b/roles/upgrade/system-upgrade/tasks/apt.yml index 4cd2d48ca..1dbc12e8a 100644 --- a/roles/upgrade/system-upgrade/tasks/apt.yml +++ b/roles/upgrade/system-upgrade/tasks/apt.yml @@ -5,10 +5,23 @@ upgrade: dist autoremove: true dpkg_options: force-confold,force-confdef - register: apt_upgrade -- name: Reboot after APT Dist-Upgrade # noqa no-handler +- name: Check if a reboot is required + ansible.builtin.stat: + path: /var/run/reboot-required + get_checksum: false + register: reboot_required + +- name: Reboot server if required to apply updates + ansible.builtin.reboot: + msg: "The system is going down for reboot NOW!" + post_reboot_delay: 30 when: - - apt_upgrade.changed or system_upgrade_reboot == 'always' - - system_upgrade_reboot != 'never' - reboot: + - reboot_required.stat.exists + - system_upgrade_reboot != 'never' + +- name: APT Autoclean + apt: + autoclean: true + when: + - system_upgrade_autoclean diff --git a/tests/files/ubuntu22-calico-all-in-one-upgrade.yml b/tests/files/ubuntu22-calico-all-in-one-upgrade.yml index a19321fca..86a369fb3 100644 --- a/tests/files/ubuntu22-calico-all-in-one-upgrade.yml +++ b/tests/files/ubuntu22-calico-all-in-one-upgrade.yml @@ -6,6 +6,7 @@ vm_memory: 3072 # Kubespray settings auto_renew_certificates: true +system_upgrade_autoclean: true # Currently ipvs not available on KVM: https://packages.ubuntu.com/search?suite=focal&arch=amd64&mode=exactfilename&searchon=contents&keywords=ip_vs_sh.ko kube_proxy_mode: iptables diff --git a/tests/files/ubuntu24-crio-upgrade.yml b/tests/files/ubuntu24-crio-upgrade.yml index 7523a0306..086d48bec 100644 --- a/tests/files/ubuntu24-crio-upgrade.yml +++ b/tests/files/ubuntu24-crio-upgrade.yml @@ -7,6 +7,7 @@ vm_memory: 3072 # Kubespray settings container_manager: crio auto_renew_certificates: true +system_upgrade_autoclean: true # Currently ipvs not available on KVM: https://packages.ubuntu.com/search?suite=noble&arch=amd64&mode=exactfilename&searchon=contents&keywords=ip_vs_sh.ko kube_proxy_mode: iptables