Merge pull request 'Auto-configure swap' (#664) from feature/swap into master

Reviewed-on: #664
Reviewed-by: Greg <greg@kosmos.org>
This commit was merged in pull request #664.
This commit is contained in:
2026-08-14 19:17:22 +00:00
2 changed files with 24 additions and 0 deletions
@@ -11,3 +11,10 @@ node.default["kosmos_kvm"]["host"]["qemu_base_image"] = {
node.default["kosmos_kvm"]["backup"]["schedule"] = "0/3:00"
# Node/VM names excluded from backups
node.default["kosmos_kvm"]["backup"]["nodes_excluded"] = []
node.default["kosmos_kvm"]["guest"]["swap"] = {
"enabled" => true, # set to false to disable swap on a guest
"size_mb" => nil, # nil => auto (half of RAM); integer => fixed MB; 0 => disabled
"path" => "/swapfile",
"swappiness" => nil # nil => leave kernel default; e.g. 10 to tune
}
@@ -8,3 +8,20 @@ package %w(qemu-guest-agent)
service "qemu-guest-agent" do
action [:enable, :start]
end
swap_cfg = node["kosmos_kvm"]["guest"]["swap"]
if swap_cfg["enabled"] && swap_cfg["size_mb"] != 0
size = swap_cfg["size_mb"] ||
(node["memory"]["total"].to_i / 2 / 1024) # kB -> MB, half RAM
# The resource only creates/activates the swapfile if it is not already
# active; an existing active swapfile is left untouched (size is NOT
# reconciled to current RAM).
swap_file swap_cfg["path"] do
size size
persist true
swappiness swap_cfg["swappiness"] if swap_cfg["swappiness"]
action :create
end
end