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

[GEP-22] Drop shootstate-extensions and shootstate-secret controllers #8136

Merged

Conversation

rfranzke
Copy link
Member

@rfranzke rfranzke commented Jun 21, 2023

How to categorize this PR?

/area scalability
/kind enhancement

What this PR does / why we need it:
This PR drops the legacy shootstate-extensions and shootstate-secret controllers.

It also changes the Shoot flows such that

Additionally, as suggested in #8112 (comment), the new ShootState controller introduced with #8112 is disabled locally since it's not needed here and would only distort the e2e test results.

Which issue(s) this PR fixes:
Part of #8073

Special notes for your reviewer:
The next step in the implementation of GEP-22 is cleaning up still existing ShootStates for Shoots running on ManagedSeeds.

/cc @timebertt

Release note:

The `shootstate-extensions` and `shootstate-secret` controllers have been dropped. The `gardenlet`'s component config file should be updated to no longer specify related configuration (`.controllers.{shootSecret,shootStateSync}`).

Instead, we now fetch the `ShootState` object in the restore phase only (this is the only phase when we need it) and store it directly on the internal `Shoot` object.
Only if the gardenlet is responsible for an unmanaged `Seed` - otherwise, its `shoot-state` reconciler wants to perform regular backups of the `ShootState`, so we shouldn't delete it even after successful restoration.
From gardener#8112 (comment):

> In our e2e tests the cpm test shoots are always scheduled on a non-managed seed. With this, the controller would always be active and we wouldn't verify that migration also works without periodic backups.

Since we don't need this periodic backup functionality in e2e tests, we simply disable the controller.
@gardener-prow gardener-prow bot requested a review from timebertt June 21, 2023 15:40
@gardener-prow gardener-prow bot added area/scalability Scalability related kind/enhancement Enhancement, improvement, extension labels Jun 21, 2023
@gardener-prow gardener-prow bot added cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 21, 2023
Copy link
Member

@timebertt timebertt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, I don't have any suggestions :)
/lgtm
/approve

@gardener-prow gardener-prow bot added the lgtm Indicates that a PR is ready to be merged. label Jun 22, 2023
@gardener-prow
Copy link
Contributor

gardener-prow bot commented Jun 22, 2023

LGTM label has been added.

Git tree hash: 4138afa7eba00e5ba07fb6ee1e391f0d684bb689

@gardener-prow
Copy link
Contributor

gardener-prow bot commented Jun 22, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: timebertt

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow gardener-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 22, 2023
@gardener-prow
Copy link
Contributor

gardener-prow bot commented Jun 22, 2023

@rfranzke: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-gardener-apidiff dc0d9f9 link false /test pull-gardener-apidiff

Full PR test history. Your PR dashboard. Command help for this repository.
Please help us cut down on flakes by linking this test failure to an open flake report or filing a new flake report if you can't find an existing one. Also see our testing guideline for how to avoid and hunt flakes.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@gardener-prow gardener-prow bot merged commit 2e4617c into gardener:master Jun 22, 2023
@rfranzke rfranzke deleted the enh/drop-legacy-shootstate-controllers branch June 22, 2023 07:17
andrerun pushed a commit to andrerun/gardener that referenced this pull request Jul 6, 2023
…lers (gardener#8136)

* Drop legacy `ShootState` controllers

* Remove legacy ShootState controller finalizer from secrets

* Drop {Get,Set}ShootState methods on `Botanist`

* Drop `EnsureShootStateExists` function

Instead, we now fetch the `ShootState` object in the restore phase only (this is the only phase when we need it) and store it directly on the internal `Shoot` object.

* Delete `ShootState` after restoration

Only if the gardenlet is responsible for an unmanaged `Seed` - otherwise, its `shoot-state` reconciler wants to perform regular backups of the `ShootState`, so we shouldn't delete it even after successful restoration.

* Disable `shoot-state` reconciler locally

From gardener#8112 (comment):

> In our e2e tests the cpm test shoots are always scheduled on a non-managed seed. With this, the controller would always be active and we wouldn't verify that migration also works without periodic backups.

Since we don't need this periodic backup functionality in e2e tests, we simply disable the controller.
nickytd pushed a commit to nickytd/gardener that referenced this pull request Sep 11, 2023
…lers (gardener#8136)

* Drop legacy `ShootState` controllers

* Remove legacy ShootState controller finalizer from secrets

* Drop {Get,Set}ShootState methods on `Botanist`

* Drop `EnsureShootStateExists` function

Instead, we now fetch the `ShootState` object in the restore phase only (this is the only phase when we need it) and store it directly on the internal `Shoot` object.

* Delete `ShootState` after restoration

Only if the gardenlet is responsible for an unmanaged `Seed` - otherwise, its `shoot-state` reconciler wants to perform regular backups of the `ShootState`, so we shouldn't delete it even after successful restoration.

* Disable `shoot-state` reconciler locally

From gardener#8112 (comment):

> In our e2e tests the cpm test shoots are always scheduled on a non-managed seed. With this, the controller would always be active and we wouldn't verify that migration also works without periodic backups.

Since we don't need this periodic backup functionality in e2e tests, we simply disable the controller.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/scalability Scalability related cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/enhancement Enhancement, improvement, extension lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants