From 292fe61301ced0390846e0d69f93d4ae49f4a8ee Mon Sep 17 00:00:00 2001 From: plop28 <50863879+plop28@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:28:08 +0200 Subject: [PATCH] Add CachyOS support (#47757) **Related issue:** Should Resolve #34591 # Checklist for submitter - [x] Changes file added ## User Story CachyOS lacks from vitals information such as : * disk encryption status * disk space * IP & MAC Addresses * Installed packages ## Summary - Add CachyOS as a recognized Linux platform ## Tests - [x] Enroll a CachyOS host and verify it appears as Linux in Fleet - [x] Verify disk encryption status displays correctly - [x] Verify pacman packages are queryable via `fleetd_pacman_packages` table - [x] Disk space, mac address, Public/Private IP are well reported - [x] Script are well executed - [x] No more errors in fleet service logs (level=error msg="unrecognized platform" hostID=169 platform=cachyos) - [ ] QA'd all new/changed functionality manually ## Summary by CodeRabbit ## Summary by CodeRabbit * **New Features** * CachyOS (Arch-based Linux distribution) is now recognized as a supported platform, including disk encryption detection and LUKS support. * **Bug Fixes** * Updated host vitals disk-encryption tooltip messaging so CachyOS uses the correct Linux-specific copy. --------- Co-authored-by: plop28 --- changes/34591-add-cachyos-support | 2 ++ .../understanding-host-vitals.md | 36 +++++++++---------- frontend/interfaces/platform.ts | 2 ++ .../hosts/details/cards/Vitals/Vitals.tsx | 3 +- server/fleet/hosts.go | 5 ++- 5 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 changes/34591-add-cachyos-support diff --git a/changes/34591-add-cachyos-support b/changes/34591-add-cachyos-support new file mode 100644 index 0000000000..8562606961 --- /dev/null +++ b/changes/34591-add-cachyos-support @@ -0,0 +1,2 @@ +CachyOS is an Arch-based Linux distribution that is not currently fully supported by Fleet with missing vital information. +This adds support for it as a known Linux platform diff --git a/docs/Contributing/product-groups/orchestration/understanding-host-vitals.md b/docs/Contributing/product-groups/orchestration/understanding-host-vitals.md index 3396b7ad62..c385f562ea 100644 --- a/docs/Contributing/product-groups/orchestration/understanding-host-vitals.md +++ b/docs/Contributing/product-groups/orchestration/understanding-host-vitals.md @@ -107,7 +107,7 @@ SELECT 1 FROM disk_encryption WHERE filevault_status = 'on' LIMIT 1 ## disk_encryption_linux -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Query: ```sql @@ -168,7 +168,7 @@ SELECT (blocks_available * 100 / blocks) AS percent_disk_space_available, ## disk_space_unix -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Query: ```sql @@ -423,7 +423,7 @@ SELECT ipv4 AS address, mac FROM network_interfaces LIMIT 1 ## network_interface_unix -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin - Query: ```sql @@ -499,7 +499,7 @@ LIMIT 1; ## orbit_info -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -533,7 +533,7 @@ SELECT ## os_unix_like -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin - Query: ```sql @@ -641,7 +641,7 @@ WITH display_version_table AS ( ## osquery_flags -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Query: ```sql @@ -659,7 +659,7 @@ select * from osquery_info limit 1 ## scheduled_query_stats -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Query: ```sql @@ -689,7 +689,7 @@ FROM chrome_extensions - Description: A software override query[^1] to append last_opened_at information to Linux DEB software entries. The accuracy of this information is limited by the accuracy of the atime column in the file table, which can be affected by the system clock and mount settings like noatime and relatime. -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Discovery query: ```sql @@ -707,7 +707,7 @@ SELECT package, MAX(atime) AS last_opened_at ## software_go_binaries -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -731,7 +731,7 @@ FROM go_binaries ## software_jetbrains_plugins -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -759,7 +759,7 @@ FROM cached_users CROSS JOIN jetbrains_plugins USING (uid) ## software_linux -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Query: ```sql @@ -843,7 +843,7 @@ FROM cached_users CROSS JOIN firefox_addons USING (uid); ## software_linux_fleetd_pacman -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Discovery query: ```sql @@ -1047,7 +1047,7 @@ WITH app_paths AS ( - Description: Prior to osquery version 5.16.0, the python_packages table did not search user directories. -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -1075,7 +1075,7 @@ SELECT - Description: As of osquery version 5.16.0, the python_packages table searches user directories with support from a cross join on users. See https://fleetdm.com/guides/osquery-consider-joining-against-the-users-table. -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -1107,7 +1107,7 @@ WITH cached_users AS (WITH cached_groups AS (select * from groups) - Description: A software override query[^1] to append last_opened_at information to Linux RPM software entries. The accuracy of this information is limited by the accuracy of the atime column in the file table, which can be affected by the system clock and mount settings like noatime and relatime. -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos - Discovery query: ```sql @@ -1125,7 +1125,7 @@ SELECT package, MAX(atime) AS last_opened_at ## software_vscode_extensions -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Discovery query: ```sql @@ -1276,7 +1276,7 @@ select * from system_info limit 1 ## uptime -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Query: ```sql @@ -1285,7 +1285,7 @@ select * from uptime limit 1 ## users -- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, darwin, windows +- Platforms: linux, ubuntu, debian, rhel, centos, sles, kali, gentoo, amzn, pop, arch, linuxmint, void, nixos, endeavouros, manjaro, manjaro-arm, opensuse-leap, opensuse-tumbleweed, tuxedo, neon, archarm, flatcar, coreos, cachyos, darwin, windows - Query: ```sql diff --git a/frontend/interfaces/platform.ts b/frontend/interfaces/platform.ts index 7283858381..b44334387b 100644 --- a/frontend/interfaces/platform.ts +++ b/frontend/interfaces/platform.ts @@ -118,6 +118,7 @@ export const HOST_LINUX_PLATFORMS = [ "archarm", // Arch Linux ARM "flatcar", // Flatcar Container Linux "coreos", // CoreOS Container Linux + "cachyos", // CachyOS (Arch-based) ] as const; export const HOST_APPLE_PLATFORMS = ["darwin", "ios", "ipados"] as const; @@ -177,6 +178,7 @@ export const DISK_ENCRYPTION_SUPPORTED_LINUX_PLATFORMS = [ "archarm", // Arch Linux ARM "manjaro", "manjaro-arm", + "cachyos", // CachyOS (Arch-based) ] as const; export const isDiskEncryptionSupportedLinuxPlatform = ( diff --git a/frontend/pages/hosts/details/cards/Vitals/Vitals.tsx b/frontend/pages/hosts/details/cards/Vitals/Vitals.tsx index 206de63558..13e129856a 100644 --- a/frontend/pages/hosts/details/cards/Vitals/Vitals.tsx +++ b/frontend/pages/hosts/details/cards/Vitals/Vitals.tsx @@ -104,7 +104,8 @@ const getHostDiskEncryptionTooltipMessage = ( platform === "arch" || platform === "archarm" || platform === "manjaro" || - platform === "manjaro-arm" + platform === "manjaro-arm" || + platform === "cachyos" ) { return DISK_ENCRYPTION_MESSAGES.linux[ diskEncryptionEnabled ? "enabled" : "unknown" diff --git a/server/fleet/hosts.go b/server/fleet/hosts.go index 97ada122ac..6a116ec465 100644 --- a/server/fleet/hosts.go +++ b/server/fleet/hosts.go @@ -985,7 +985,8 @@ func (h *Host) IsDEPAssignedToFleet() bool { func (h *Host) IsLUKSSupported() bool { return h.Platform == "ubuntu" || strings.Contains(h.OSVersion, "Fedora") || // fedora h.Platform reports as "rhel" - h.Platform == "arch" || h.Platform == "archarm" || h.Platform == "manjaro" || h.Platform == "manjaro-arm" + h.Platform == "arch" || h.Platform == "archarm" || h.Platform == "manjaro" || h.Platform == "manjaro-arm" || + h.Platform == "cachyos" } // IsAppleSilicon returns true if the host is a macOS device with an ARM CPU (Apple Silicon). @@ -1191,6 +1192,7 @@ var HostLinuxOSs = []string{ "archarm", "flatcar", "coreos", + "cachyos", } // HostNeitherDebNorRpmPackageOSs are the list of known Linux platforms that support neither DEB nor RPM packages @@ -1205,6 +1207,7 @@ var HostNeitherDebNorRpmPackageOSs = map[string]struct{}{ "manjaro-arm": {}, "flatcar": {}, "coreos": {}, + "cachyos": {}, } // HostDebPackageOSs are the list of known Linux platforms that support DEB packages