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

Update Ready condition during drift correction #885

Merged
merged 1 commit into from
Apr 29, 2024

Commits on Apr 17, 2024

  1. Update Ready condition during drift correction

    Update the Ready condition during drift correction to reflect the
    current state of reconciliation. Without this, any previous Ready
    condition value continues to persist on the object. If there was a
    previous failure due to which Ready=False condition is present on the
    object, the same value continues to persist if the atomic release
    reconciliation enters a drift detection and correction loop. Resulting
    in the status to show inaccurate state of the reconciliation.
    
    Examples of two different scenarios that arise due to this issue:
    - If a release without any dependency is installed, the status shows
      Ready=True for InstallSucceeded reason. But right after the
      installation, if a drift is detected the status continues to show the
      same Ready=True value. There's no indication that a drift correction
      is going on in the status. The events and logs do show that drift
      correction is taking place. But it can be confusing to see positive
      Ready value. Also, since the Ready condition message is copied for
      Reconciling condition, Reconciling=True with a "Helm install
      succeeded..." is seen.
    - If a release depends on another release, and reconciliation results in
      dependency not ready error at first, Ready=False condition is added on
      the object. On subsequent runs, even when the dependencies are ready,
      the Ready=False condition isn't updated, resulting in stale Ready
      value until atomic release reconciliation completes. But if the atomic
      reconciliation enters a drift detection and correction loop, the
      Ready=False with dependency error persists in the status. This gives
      the impression that something is wrong with dependency check but based
      on the logs and events, the controller could be stuck in drift
      detection and correction loop.
    
    Updating the Ready condition during drift detection shows the current
    state of reconciliation, avoiding the confusing scenarios described
    above.
    
    Signed-off-by: Sunny <github@darkowlzz.space>
    darkowlzz committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    56478cf View commit details
    Browse the repository at this point in the history