-
-
Notifications
You must be signed in to change notification settings - Fork 616
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
Smoother scheduling and leasing for crl-updater #7010
Conversation
e602813
to
730798f
Compare
730798f
to
321f85f
Compare
f0e7c50
to
af4bfc5
Compare
@aarongable, this PR appears to contain configuration changes. Please ensure that a corresponding deployment ticket has been filed with the new configuration values. |
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 all feels incredibly slick, great work!
The base branch was changed.
@pgporada FWIW, this doesn't require a re-review. This happens automatically when the first of two stacked changes is merged into main. This PR still represents the exact same set of commits and contains the exact same set of diffs -- it's just that now, instead of being based on top of some other PR branch, it is now based on top of main... which now contains the commits that were in that other PR branch! |
I don't think I wrote that comment, it might have been a github automatic message? I for sure know I didn't open this PR yesterday. Regardless, taking a look now. |
Fascinating! I guess it was automatic, and attributed to you because you clicked the merge button on #7052. Apologies! |
Overhaul crl-updater's default (i.e. non-runOnce) behavior to update individual CRL shards continuously, rather than updating all shards in a large batch.
To accomplish this, it spins up one goroutine for each shard of each issuer this updater is responsible for. Each goroutine is solely responsible for its assigned shard. It sleeps for a random amount of time (to stagger their starts), then begins a ticker to wake up every updateInterval and re-issue its shard.
As part of this change, refactor updater.go into three separate files (batch.go, continuous.go, and updater.go) containing functions dedicated to single-run batch processing, long-running continuous processing, and shared helpers, respectively.
IN-9475 tracks the deprecation of the
updateOffset
config key. The other configuration changes in this PR do not require production changes.Fixes #7023
DO NOT MERGE until after #7009DO NOT MERGE until after #7051DO NOT MERGE until after #7052Nota bene: I strongly recommend reviewing this PR one commit at a time. The first few are just moving code around with no changes.