Skip to content
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

[Backport release-1.30] Applier manager improvements #5172

Draft
wants to merge 6 commits into
base: release-1.30
Choose a base branch
from

Commits on Oct 30, 2024

  1. The stacks don't need to be stored in the manager struct

    The map is only ever used in the loop to create and remove stacks, so it
    doesn't need to be stored in the struct. This ensures that there can't
    be any racy concurrent accesses to it.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit ba547ed)
    (cherry picked from commit c6dba06)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    05a768b View commit details
    Browse the repository at this point in the history
  2. Don't check for closed watch channels

    The only reason these channels get closed is if the watcher itself gets
    closed. This happens only when the method returns, which in turn only
    happens when the context is done. In this case, the loop has already
    exited without a select on a potentially closed channel. So the branches
    that checked for closed channels were effectively unreachable during
    runtime.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit db5e0d2)
    (cherry picked from commit 102b7e3)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    b9fd9bd View commit details
    Browse the repository at this point in the history
  3. Wait for goroutines to exit in applier manager

    Rename cancelWatcher to stop and wait until the newly added stopped
    channel is closed. Also, add a stopped channel to each stack to do the
    same for each stack-specific goroutine.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit 402c728)
    (cherry picked from commit dbc286c)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    95e5ec0 View commit details
    Browse the repository at this point in the history
  4. Improve logging in applier manager

    Cancel the contexts with a cause. Add this cause to the log statements
    when exiting loops. Rename bundlePath to bundleDir to reflect the fact
    that it is a directory, not a file.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit edb105c)
    (cherry picked from commit a22902b)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    394198b View commit details
    Browse the repository at this point in the history
  5. Restart applier manager watch loop on errors

    Exit the loop on error and restart it after a one-minute delay to allow
    it to recover in a new run. Also replace the bespoke retry loop for
    stacks with the Kubernetes client's wait package.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit 404c6cf)
    (cherry picked from commit 3058460)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    87ce481 View commit details
    Browse the repository at this point in the history
  6. Remove unused applier field from applier manager

    Seems to be a remnant from the past.
    
    Signed-off-by: Tom Wieczorek <[email protected]>
    (cherry picked from commit c2beea7)
    (cherry picked from commit 4b2efbe)
    twz123 committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    04ba246 View commit details
    Browse the repository at this point in the history