From 2891de8fef486aae30b2d742b335eb513e42ac26 Mon Sep 17 00:00:00 2001 From: Sandwich Date: Fri, 2 Jan 2026 18:47:32 +0100 Subject: [PATCH] Add zstd toggle for btrfs and zram --- roles/configuration/tasks/extras.yml | 2 +- roles/global_defaults/defaults/main.yml | 1 + roles/partitioning/defaults/main.yml | 1 + roles/partitioning/tasks/btrfs.yml | 14 ++++++++++++- roles/partitioning/tasks/main.yml | 28 ++++++++++++------------- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/roles/configuration/tasks/extras.yml b/roles/configuration/tasks/extras.yml index afb25c1..604556b 100644 --- a/roles/configuration/tasks/extras.yml +++ b/roles/configuration/tasks/extras.yml @@ -32,7 +32,7 @@ content: | [zram0] zram-size = ram / 2 - compression-algorithm = zstd + compression-algorithm = {{ 'zstd' if zstd_enabled | bool else 'lz4' }} swap-priority = 100 fs-type = swap mode: "0644" diff --git a/roles/global_defaults/defaults/main.yml b/roles/global_defaults/defaults/main.yml index 7d641bd..9fc99f5 100644 --- a/roles/global_defaults/defaults/main.yml +++ b/roles/global_defaults/defaults/main.yml @@ -5,6 +5,7 @@ cis: false selinux: true vmware_ssh: false firewalld_enabled: true +zstd_enabled: true cis_enabled: "{{ cis | bool }}" diff --git a/roles/partitioning/defaults/main.yml b/roles/partitioning/defaults/main.yml index 4a313f9..0e5fb9b 100644 --- a/roles/partitioning/defaults/main.yml +++ b/roles/partitioning/defaults/main.yml @@ -16,6 +16,7 @@ partitioning_luks_tpm2_device: "{{ luks_tpm2_device }}" partitioning_luks_tpm2_pcrs: "{{ luks_tpm2_pcrs }}" partitioning_luks_keyfile_size: "{{ luks_keyfile_size }}" partitioning_luks_options: "{{ luks_options }}" +partitioning_btrfs_compress_opt: "{{ 'compress=zstd:15' if zstd_enabled | bool else '' }}" partitioning_boot_partition_suffix: 1 partitioning_main_partition_suffix: 2 partitioning_efi_size_mib: 512 diff --git a/roles/partitioning/tasks/btrfs.yml b/roles/partitioning/tasks/btrfs.yml index 1b9c44f..3c377e1 100644 --- a/roles/partitioning/tasks/btrfs.yml +++ b/roles/partitioning/tasks/btrfs.yml @@ -19,7 +19,19 @@ path: /mnt src: "{{ partitioning_root_device }}" fstype: btrfs - opts: rw,relatime,compress=zstd:15,ssd,space_cache=v2,discard=async + opts: >- + {{ + [ + 'rw', + 'relatime', + partitioning_btrfs_compress_opt, + 'ssd', + 'space_cache=v2', + 'discard=async' + ] + | reject('equalto', '') + | join(',') + }} state: mounted - name: Enable quotas on Btrfs filesystem diff --git a/roles/partitioning/tasks/main.yml b/roles/partitioning/tasks/main.yml index 76d8fd2..2fbd4da 100644 --- a/roles/partitioning/tasks/main.yml +++ b/roles/partitioning/tasks/main.yml @@ -474,17 +474,17 @@ 'defaults' if filesystem != 'btrfs' else [ - 'rw', 'relatime', 'compress=zstd:15', 'ssd', 'space_cache=v2', + 'rw', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /swap opts: >- {{ [ - 'rw', 'nosuid', 'nodev', 'relatime', 'compress=zstd:15', 'ssd', + 'rw', 'nosuid', 'nodev', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@swap' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /home uuid: "{{ partitioning_uuid_home[0] | default(omit) }}" @@ -493,9 +493,9 @@ 'defaults,nosuid,nodev' if filesystem != 'btrfs' else [ - 'rw', 'nosuid', 'nodev', 'relatime', 'compress=zstd:15', 'ssd', + 'rw', 'nosuid', 'nodev', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@home' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /var uuid: "{{ partitioning_uuid_var[0] | default(omit) }}" @@ -504,9 +504,9 @@ 'defaults,nosuid,nodev' if filesystem != 'btrfs' else [ - 'rw', 'nosuid', 'nodev', 'relatime', 'compress=zstd:15', 'ssd', + 'rw', 'nosuid', 'nodev', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /var/log uuid: "{{ partitioning_uuid_var_log[0] | default(omit) }}" @@ -515,9 +515,9 @@ 'defaults,nosuid,nodev,noexec' if filesystem != 'btrfs' else [ - 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', 'compress=zstd:15', + 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var_log' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /var/cache/pacman/pkg uuid: "{{ partitioning_uuid_root | default([]) | first | default(omit) }}" @@ -526,9 +526,9 @@ 'defaults,nosuid,nodev,noexec' if filesystem != 'btrfs' else [ - 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', 'compress=zstd:15', + 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@pkg' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - path: /var/log/audit uuid: "{{ partitioning_uuid_var_log_audit[0] | default(omit) }}" @@ -537,9 +537,9 @@ 'defaults,nosuid,nodev,noexec' if filesystem != 'btrfs' else [ - 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', 'compress=zstd:15', + 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var_log_audit' - ] | join(',') + ] | reject('equalto', '') | join(',') }} - name: Mount /boot filesystem