mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
Trying to make sure I don't overlook anything. The possible combinations of setups is like 100+, but these 6 will at least exercise everything one time, and they're probably going to be the most common, right? --------- Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
1.6 KiB
1.6 KiB
Linux client use cases
This document lists the most common use cases that we could test. Exhaustively tesing everything would be difficult. These cases at least exercise every feature once, although they don't exercise every combination of features.
- Alpine Docker container, CLI only, resolv.conf DNS (Easy to test)
- Exe only, Manual startup, CLI only, No DNS (Embedded / IoT)
- Exe only, Manual startup, CLI only, resolv.conf DNS (Embedded / IoT)
- Package manager installation, activated by NetworkManager, CLI only, NetworkManager DNS (To get NM working before committing to a GUI)
- Package manager installation, runs as always-on systemd service unit, Tauri GUI, resolvectl DNS (A desktop that doesn't have NetworkManager)
- Package manager installation, runs as systemd service unit, activated by NetworkManager, Tauri GUI and NetworkManager interfaces, NetworkManager DNS (The "Make me one with everything" option)
If we don't test a real package manager (e.g. apt, yum) we can consider
a tarball artifact to be a "package" and untar it in CI to get the systemd and NetworkManager service files. cargo-deb does work well for Debian systems.
Code paths to be exercised
Install method
- Exe only
- Package manager (e.g. apt / yum) or equivalent manual install
- Docker (Unsupported in prod, only for testing?)
Startup
- Manual
- Systemd service unit
- D-Bus service activation by NetworkManager
Interface
- CLI only
- Tauri GUI
- NetworkManager plugin
DNS control method
- None
- resolv.conf
- resolvectl
- NetworkManager (Ubuntu 20.04 Desktop and Debian 12 with XFCE both come with NM by default, so it's very popular)