-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Converts sd-proxy to SDW template base #488
Conversation
We've been using both Whonix TemplateVMs in the SDW components: * whonix-gw-15 -> sd-whonix * whonix-ws-15 -> sd-proxy In order to speed up the time it takes for updates to run (#459), as well as nudge us toward full template consolidation (#471), let's use the `securedrop-workstation-buster` Template for `sd-proxy`. Since `sd-proxy` still has its NetVM set to `sd-whonix`, it's able to resolve Onion URLs just fine.
Is it possible that the timeout behavior difference will impact |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @conorsch this looks good to me. While I didn't observe similar gains to you, Visual diff and performed functional testing as follows:
Client connectivity
-
make clone && make clean && make all && make test
passes without error - Run the client (OK to run
securedrop-client
directly in a terminal onsd-app
, to sidestep the preflight updater) - Log in as usual, confirm no errors
- Interact with test source and submissions, open a few in DVMs to confirm download working
- Leave the client idle for at least 10 minutes. This is to ensure that despite the networking change, the client is able to communicate with the server over time
- Return to the client, interacting with new sources, downloading new submissions, and confirm no networking errors
Update time
Next, let's confirm the assumption that apt updates are significantly faster.
- Open a terminal on
sd-proxy-buster-template
and runtime { sudo apt-get update && sudo apt-get install -y firefox-esr; }
, record the time :
real 0m35.856s
user 0m9.396s
sys 0m3.717s
- Open a terminal on
sd-proxy
and runtime { sudo apt-get update && sudo apt-get install -y firefox-esr; }
, record the time
real 1m18.341s
user 0m9.268s
sys 0m3.897s
Also tested reliability as follows:
- Put the workstation to sleep, client functionality works upon resuming from sleep (though not a scenario we should hit in production)
- Per @eloquence 's comment above, closes
securedrop-client
, waited 15 minutes and restarted client, functionality and connectivity work as expected - Logs are correctly sent to sd-log
It might be good to merge #489 before cutting as new release as it will help with QA.
Client connectivity
Update timeNext, let's confirm the assumption that apt updates are significantly faster.
There are the times I observed when testing locally:
|
Status
Ready for review
Description of Changes
Refs #459, #456.
Changes proposed in this pull request:
sd-proxy
to use thesecuredrop-workstation-buster
template, rather than Whonix Gateway 15We do this in order to speed up the time it takes for updates to run (#459), as well as nudge us toward full template consolidation (#471). Since
sd-proxy
still has its NetVM set tosd-whonix
, it's able to resolve Onion URLs just fine.The diff is quite simple here. The proof is in the test plan.
Testing
N.B. We tried to make this change a while back, and abandoned it due to client sync frequency. See related comment here: #206 (comment) (hat tip to @emkll for digging up that gem). Given the dramatic improvements to client sync functionality since then, we should be in a fine position to move forward now. Still, the test plan includes mention of idle state to make sure.
You'll need to apply the workaround #485 (comment) in order to review effectively.
Client connectivity
make clone && make clean && make all && make test
passes without errorsecuredrop-client
directly in a terminal onsd-app
, to sidestep the preflight updater)Update time
Next, let's confirm the assumption that apt updates are significantly faster.
sd-proxy-buster-template
and runtime { sudo apt-get update && sudo apt-get install -y firefox-esr; }
, record the timesd-proxy
and runtime { sudo apt-get update && sudo apt-get install -y firefox-esr; }
, record the timeThere are the times I observed when testing locally:
Note that you'll need to edit
dom0:/etc/qubes-rpc/policy/qubes.ClipboardPaste
if you wish to copy/paste your results here.Checklist
If you have made code changes
make flake8
) passes in the development environment (this box maybe left unchecked, as
flake8
also runs in CI)If you have made changes to the provisioning logic
All tests (
make test
) pass indom0
of a Qubes installThis PR adds/removes files, and includes required updates to the packaging
logic in
MANIFEST.in
andrpm-build/SPECS/securedrop-workstation-dom0-config.spec