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

Have a strategy on how to react if Gardener changes the Shoot spec #232

Closed
4 tasks done
Tracked by #112
Disper opened this issue May 23, 2024 · 1 comment
Closed
4 tasks done
Tracked by #112

Have a strategy on how to react if Gardener changes the Shoot spec #232

Disper opened this issue May 23, 2024 · 1 comment

Comments

@Disper
Copy link
Member

Disper commented May 23, 2024

Description:

It is possible that Gardener might modify or delete existing shoot created previously from Runtime CR spec. This may happen when for example Kubernetes version is updated automatically or manually by the Gardner admins. If we do not update Runtime CR accordingly - we will end with data inconsistency between Runtime CR and Gardener shoot.

There are also situations when shoot may become unavailable - because of deletion or manual hibernation.

In both cases such operation will not be noticed by the Runtime controller and will leave existing Runtime CR in "Ready" state when in reality the shoot will be deleted or hibernated.

Solution proposal:

  • Add dedicated controller watching for the shoot resource, and update Runtime Spec with fields like Kubernetes version or availability status.
  • To prevent shoot deletion Runtime controller can set its own finaliser on the managed shoot resource. This will not allow shoot to be deleted.

AC:

  • Align with SRE how we should deal with field-updates applied in Shoot-Spec
    • Clarify how the general behaviour should be. Optional we see:
      1. sync all fields from Shoot-Spec
      2. Is custom sync-logic per field required? (e.g. what if Shoot-Spec gets upgraded but RuntimeCR requests even a newer K8s-version... )
      3. sync only selected fields (especially consider hybernation + deletions of clusters by users/SREs)
      4. ignore Shoot-Spec changes completely (probably risky in case of cluster-upgrades by Gardener)
    • Define which fields have to be synchronised
    • Clarify whether a field-specific upgrade logic is needed (consider cases where the Shoot-Spec and the RuntimeCR get changed in parallel - which field wins?)
@tobiscr
Copy link
Contributor

tobiscr commented Jul 1, 2024

Results of alignment meeting with SREs (@ebensom from 2024-06-25):
Screenshot 2024-07-01 at 16 44 18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants