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-32] Version Classification Lifecycles #10982

Conversation

vknabel
Copy link
Contributor

@vknabel vknabel commented Dec 5, 2024

How to categorize this PR?

/area documentation
/kind discussion

What this PR does / why we need it:
Introduces the GEP-32 to schedule the lifecycle of version classifications. It aims to improve on the currently implemented expirationDate approach.
A reference implementation can be found at metal-stack#9

Which issue(s) this PR fixes:

Special notes for your reviewer:
Implemented as part of the Gardener Hackathon 2024 Q4.

The missing GEP numbers were "reserved" during the hackathon and skipped to avoid conflicts. Corresponding PRs will be opened by other contributors.

FYI to the authors @crigertg @Gerrit91 @LucaBernstein

@gardener-prow gardener-prow bot added area/documentation Documentation related kind/discussion Discussion (engaging others in deciding about multiple options) labels Dec 5, 2024
@gardener-prow gardener-prow bot requested review from marc1404 and timuthy December 5, 2024 10:50
@gardener-prow gardener-prow bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Dec 5, 2024
Copy link
Contributor

gardener-prow bot commented Dec 5, 2024

Hi @vknabel. Thanks for your PR.

I'm waiting for a gardener member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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-sigs/prow repository.

@gardener-prow gardener-prow bot added cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Dec 5, 2024
@vknabel vknabel changed the title docs(proposal): gep-32 version classification lifecycles GEP-32 version classification lifecycles Dec 5, 2024
@rfranzke rfranzke changed the title GEP-32 version classification lifecycles [GEP-32] Version Classification Lifecycles Dec 5, 2024
@rfranzke
Copy link
Member

rfranzke commented Dec 5, 2024

/cc @vlerenc @dguendisch

@gardener-prow gardener-prow bot requested review from dguendisch and vlerenc December 5, 2024 11:00
@dguendisch
Copy link
Member

The approach sounds good!

  • will it be supported to overwrite the lifecycles (by administrators) any time? (e.g. to reflect that a version was once planned to be supported on some date, but during preview was found to be somewhat broken and we'd like to transition such a version rather from preview to deprecated and expired (omitting supported) with earlier startTimes than initially planned)
  • I understood that the moment we'd switch to the new lifecycles, we'd have to omit the old/now-deprecated fields, hence potential consumers of the cloudprofile resource would have to "hard-switch" to the new spec once the cloudprofiles on a certain gardener installation/landscape changed to the new format, correct?

Copy link
Member

@vlerenc vlerenc left a comment

Choose a reason for hiding this comment

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

I like the new proposal a lot - it makes life so much easier and allows to properly define the lifecycle in advance, which makes a lot of sense in combination with the prime entity we manage with this: Kubernetes - with any new Kubernetes version, everything is already communicated, like for how long functional and security patches are provided.

❤️

@Gerrit91
Copy link
Contributor

Gerrit91 commented Dec 5, 2024

will it be supported to overwrite the lifecycles (by administrators) any time?

In general yes, but there are few restrictions:

  • We planned to prevent changing a start time that would cause a version to move into unavailable stage. Once an version has become available it stays available.
  • For NamespacedCloudProfiles there are more complex rules, which @vknabel or @LucaBernstein can explain better.

I understood that the moment we'd switch to the new lifecycles, we'd have to omit the old/now-deprecated fields, hence potential consumers of the cloudprofile resource would have to "hard-switch" to the new spec once the cloudprofiles on a certain gardener installation/landscape changed to the new format, correct?

Both variants are supported as long as desired. At one point in time it should be switched, e.g. in a v1 version of the CloudProfile. For this it would be possible to make a conversion from v1beta1 to v1 if this answers the question?

@dguendisch
Copy link
Member

Both variants are supported as long as desired. At one point in time it should be switched, e.g. in a v1 version of the CloudProfile. For this it would be possible to make a conversion from v1beta1 to v1 if this answers the question?

With a new version and a conversion between them would mean that our users would have some migration window and can do the switch whenever they are ready. If that new cloudprofile version is already foreseen, maybe it should be added to the GEP.

@robinschneider
Copy link
Contributor

Thanks for picking up my idea and the work you spend into creating the first implementation.
Really looking forward to have scheduled classifications.

@vknabel
Copy link
Contributor Author

vknabel commented Dec 5, 2024

The latest version of the proposal includes a new section regarding NamespacedCloudProfiles and the version lifecycle. Here we explain how we handle edge-cases during overrides and what an administrator needs to respect during updating a lifecycle. Hope this answers some questions. 😊

@LucaBernstein LucaBernstein self-requested a review December 5, 2024 14:13
@rfranzke
Copy link
Member

@vlerenc @dguendisch Can you please have another look so that we can proceed with the GEP? :)

@vlerenc
Copy link
Member

vlerenc commented Dec 17, 2024

@rfranzke I generally liked the idea a lot to switch from manual to a spec describing what shall (automatically) happen to that/a version over time and only had a minor English language comment that got fixed, so:
/lgtm

@gardener-prow gardener-prow bot added the lgtm Indicates that a PR is ready to be merged. label Dec 17, 2024
Copy link
Contributor

gardener-prow bot commented Dec 17, 2024

LGTM label has been added.

Git tree hash: 0d28f7f5be47a010828c3236fcfbc9946157e9b5

@vlerenc vlerenc self-requested a review December 17, 2024 10:46
Copy link
Member

@vlerenc vlerenc left a comment

Choose a reason for hiding this comment

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

Looks good to me. Love the proposal.

@dguendisch
Copy link
Member

all good from from my side as well
/lgtm

Copy link
Member

@rfranzke rfranzke left a comment

Choose a reason for hiding this comment

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

Nice, thank you everybody.

Any other feedback? Otherwise, I would propose to merge this in the course of this week so that the folks can focus on the implementation part.

cc @timuthy @LucaBernstein @timebertt

docs/proposals/32-version-classification-lifecycles.md Outdated Show resolved Hide resolved
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.

Kudos to all proposal authors! This is a very well-written GEP. I'm looking forward to the feature ❤️

I don't have any other feedback apart from renaming the status field (#10982 (comment)).

Copy link
Member

@timuthy timuthy left a comment

Choose a reason for hiding this comment

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

Nice proposal! No further feedback from my side.
/lgtm

@rfranzke rfranzke force-pushed the gep-32-version-classification-lifecycle branch from c6dc232 to 17f2c1b Compare December 18, 2024 11:15
@gardener-prow gardener-prow bot removed the lgtm Indicates that a PR is ready to be merged. label Dec 18, 2024
@gardener-prow gardener-prow bot requested review from timuthy and vlerenc December 18, 2024 11:16
Copy link
Member

@rfranzke rfranzke left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

@gardener-prow gardener-prow bot added the lgtm Indicates that a PR is ready to be merged. label Dec 18, 2024
Copy link
Contributor

gardener-prow bot commented Dec 18, 2024

LGTM label has been added.

Git tree hash: b8be021034a50daed6913b1a3994da2e7eaee13f

Copy link
Contributor

gardener-prow bot commented Dec 18, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rfranzke, vlerenc

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 Dec 18, 2024
@rfranzke
Copy link
Member

/ok-to-test

@gardener-prow gardener-prow bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Dec 18, 2024
@gardener-prow gardener-prow bot merged commit 130fa66 into gardener:master Dec 18, 2024
18 checks passed
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/documentation Documentation related cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/discussion Discussion (engaging others in deciding about multiple options) lgtm Indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants