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

Move HPA v2beta2 deprecation to 1.23. #103153

Merged
merged 1 commit into from
Jun 28, 2021

Conversation

josephburnett
Copy link
Member

@josephburnett josephburnett commented Jun 24, 2021

What type of PR is this?

/kind cleanup
/kind deprecation

What this PR does / why we need it:

We are creating an HPA v2 stable API to replace the HPA v2beta2 API (kubernetes/enhancements#2702). We have been working toward landing the stable API in v1.22 (tracking doc), the version in which v2beta2 is slated for deprecation. However in the course of creating the new API we have discovered a few places for improvement.

For example, we see an opportunity to create a common meta.v1 ObjectReference to replace the many api-group-specific object references (comment).

And we would like to use the existing meta.v1 Condition instead of the autoscaling-specific conditions. However there is some additional data we need to populate and we need time to figure out how (comment).

Therefore we would like to defer the deprecation of v2beta2 to 1.23 so have time to make this change carefully and improve the ecosystem around us.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

KEP: sig-autoscaling/2702-graduate-hpa-api-to-GA/README.md

@k8s-ci-robot
Copy link
Contributor

@josephburnett: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

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.

@k8s-ci-robot k8s-ci-robot added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. kind/deprecation Categorizes issue or PR as related to a feature/enhancement marked for deprecation. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jun 24, 2021
@josephburnett
Copy link
Member Author

/sig autoscaling

@k8s-ci-robot k8s-ci-robot added sig/autoscaling Categorizes an issue or PR as relevant to SIG Autoscaling. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jun 24, 2021
@josephburnett
Copy link
Member Author

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jun 24, 2021
@josephburnett
Copy link
Member Author

/release-note-none

@k8s-ci-robot
Copy link
Contributor

@josephburnett: you can not set the release note label to "release-note-none" because the PR has the label "kind/deprecation".

In response to this:

/release-note-none

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.

@fejta-bot
Copy link

This PR may require API review.

If so, when the changes are ready, complete the pre-review checklist and request an API review.

Status of requested reviews is tracked in the API Review project.

@josephburnett
Copy link
Member Author

/test pull-kubernetes-e2e-kind

@thockin
Copy link
Member

thockin commented Jun 24, 2021

This seems like it should be non-contentious?

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: josephburnett, thockin

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 24, 2021
@josephburnett
Copy link
Member Author

josephburnett commented Jun 25, 2021

Needs lgtm label. And needs "deprecation" label removed (this is an undeprecation).

@mwielgus mwielgus removed kind/deprecation Categorizes issue or PR as related to a feature/enhancement marked for deprecation. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Jun 28, 2021
@mwielgus
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 28, 2021
@k8s-ci-robot k8s-ci-robot merged commit cd5d3e6 into kubernetes:master Jun 28, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.22 milestone Jun 28, 2021
@liggitt
Copy link
Member

liggitt commented Jun 28, 2021

This seems like it should be non-contentious?

This is extending v2beta2 past https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1635-prevent-permabeta/

v2beta2 was added in 1.12

The deprecation clock was started in 1.19 as part of https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1635-prevent-permabeta/

All pre-existing beta API versions were on the clock as of 1.19, and all others did the work to graduate (cronjob, poddisruptionbudget, eviction, etc), or made the decision not to graduate (podsecuritypolicy). The motivation remains to avoid accumulating additional usage on an API version we know will not be around long term.

I think the 1.22 deadline should remain. If more time before GA is needed, a v2beta3 could be reasonable.

@mwielgus
Copy link
Contributor

@liggitt
We made an effort to graduate it 1.22 but additional, unexpected changes were requested (common object reference type in meta). The person working on this didn't manage to get them approved before going for well deserved vacation. He is, however, more than committed to finish everything for 1.23.

This is an unfortunate situation, I fully understand the need of getting apis out of beta, but creating a v2beta3, exactly the same as v2beta2 (or a half-baked GA) with a sole purpose of bypassing the deadline doesn't make sense in my opinion. There is also no person at this moment who can drop everything and do it before the code freeze on Jul 8th (vacation season is starting after months of lockdown). Making v2beta2 deprecated without a proper version will confuse users - they have no other version to go. And they will have to ignore it.

The exceptional move of deprecation marker by one version is, in my opinion, the lesser evil.

@thockin
Copy link
Member

thockin commented Jul 5, 2021 via email

@liggitt
Copy link
Member

liggitt commented Jul 6, 2021

The reasons for "just one more release" could easily be applied to every beta version that wasn't prioritized and wasn't ready for promotion by the deprecation deadline. Starting a review 3 weeks before code freeze for the release where the beta version is deprecated is too late. I think it is a bad precedent to set to casually lengthen the lifetime and accumulate another 4 months of usage on this version.

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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. sig/autoscaling Categorizes an issue or PR as relevant to SIG Autoscaling. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants