-
Notifications
You must be signed in to change notification settings - Fork 26
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
Add noble migration instructions #632
base: main
Are you sure you want to change the base?
Conversation
Still WIP; needs some links and other stuff added. A few placeholders around dates need figuring out. Just wanted to post this so people can see the general direction. |
Thanks @legoktm, this looks great! I think it covers all the questions I would have as an admin. The only thing missing that I'm seeing is a recommendation for folks to take a backup, just to be on the safe side. Is there any reason we wouldn't want to advise that beforehand? |
The upgrade script already takes a backup, except it leaves it on the It didn't really hit me until now, but in the manual case, we can just automatically start the backup for them as step 0. And then clean it up once we're done. The server will generate its own backup still, but that's not an issue. |
f391f5d
to
8d3bad5
Compare
8d3bad5
to
5a4aa57
Compare
This ended up being more complicated technically than I anticipated, so for now I've just added a bullet to run the backup script first. |
Marking this as ready for review. Key highlights:
|
Hypothetical scenario: I'm an admin who didn't get a chance to run the semi-automated upgrade prior to March 21. It is now March 23 and I wish to upgrade, but my servers apparently aren't part of the batch that is receiving the rollout. Am I safe to run the |
Yes.
The semi-automated upgrade will run as it normally does.
Nope, once you're on noble, you're all set, the script won't do anything. For technical context, https://github.com/freedomofpress/securedrop/blob/develop/securedrop/debian/config/usr/share/securedrop/noble-upgrade.json is the file that controls which upgrades should happen. The semi-automated upgrade works by overwriting this file to say "upgrade everything now" (https://github.com/freedomofpress/securedrop/blob/35e4b2df2b5c3197c605884e078adc6116cffc69/install_files/ansible-base/roles/noble-migration/tasks/main.yml#L13). So even in the worst-case scenario race condition in which you server receives receives the fully automated instructions to begin the upgrade, and you manually initiate an upgrade at the same time, it'll just work because they use the same instruction file, and start the same systemd unit. (There is some small gotchas around how the Or to look at it another way, the semi-automated way basically just starts the fully automatic upgrade and then waits for it to finish, so they can't really conflict. |
Thanks @legoktm, that's excellent. I wanted to make sure that we didn't need to include any additional language to protect against running that command after the deadline. Since there's no harm in doing so, I think this PR is in good shape. |
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.
This PR LGTM. Leaving open for @cfm to review as well before merging.
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.
Looks good! One non-blocking suggestion inline.
0e2bc6d
to
d64eb4f
Compare
d64eb4f
to
a7a2a9b
Compare
Status
Ready for review
Description of Changes
Testing
Release
Checklist (Optional)
make docs-lint
) passed locallymake docs-linkcheck
) passedmake docs
) docs at http://localhost:8000