Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the drift-detection-manager runs in the management cluster, it receives the managed cluster's kubeconfig from a Secret. These kubeconfigs can expire (e.g., GKE tokens have a maximum lifespan of 48 hours).
Sveltos includes a mechanism to proactively renew these tokens. The SveltosCluster controller can be configured to periodically refresh tokens before they expire, preventing disruptions.
However, prior to this change, the drift-detection controller, when deployed in the management cluster, lacked the ability to retrieve an updated kubeconfig. Consequently, upon kubeconfig expiration, the controller encountered numerous authorization errors, effectively ceasing operation.
This pull request addresses this issue by implementing a mechanism to detect kubeconfig expiration. Upon detection, the drift-detection controller retrieves a fresh, valid kubeconfig. This triggers a restart of the controller-runtime manager (and all associated controllers) as well as the evaluation manager, ensuring continued operation.
Fixes #272