mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-03-22 07:41:51 +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>
43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
# 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.
|
|
|
|
1. Alpine Docker container, CLI only, resolv.conf DNS (Easy to test)
|
|
2. Exe only, Manual startup, CLI only, No DNS (Embedded / IoT)
|
|
3. Exe only, Manual startup, CLI only, resolv.conf DNS (Embedded / IoT)
|
|
4. Package manager installation, activated by NetworkManager, CLI only, NetworkManager DNS (To get NM working before committing to a GUI)
|
|
5. Package manager installation, runs as always-on systemd service unit, Tauri GUI, resolvectl DNS (A desktop that doesn't have NetworkManager)
|
|
6. 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
|
|
|
|
1. Exe only
|
|
2. Package manager (e.g. apt / yum) or equivalent manual install
|
|
3. Docker (Unsupported in prod, only for testing?)
|
|
|
|
### Startup
|
|
|
|
1. Manual
|
|
2. Systemd service unit
|
|
3. D-Bus service activation by NetworkManager
|
|
|
|
### Interface
|
|
|
|
1. CLI only
|
|
2. Tauri GUI
|
|
3. NetworkManager plugin
|
|
|
|
### DNS control method
|
|
|
|
1. None
|
|
2. resolv.conf
|
|
3. resolvectl
|
|
4. NetworkManager (Ubuntu 20.04 Desktop and Debian 12 with XFCE both come with NM by default, so it's very popular)
|