-
Notifications
You must be signed in to change notification settings - Fork 4k
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
VPA: Remove v1beta2 #7629
base: master
Are you sure you want to change the base?
VPA: Remove v1beta2 #7629
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @adrianmoisey thanks for doing this PR! I love changes which consist basically only of removing lines!
I have two asks before this is ready to be merged from my point of view:
- I think we should add a comment to the README similar to what we did for the migration from v1beta1 to v1beta2. Contrary to the previous api migration, there aren't any changes necessary for users (v1 didn't make any incompatible changes), except for changing
v1beta2
tov1
in their VPA objects.- People can find out if they need to to anything by looking at the recommender metrics, e.g.
sum(vpa_recommender_vpa_objects_count) by (api)
- People can find out if they need to to anything by looking at the recommender metrics, e.g.
- There seems to be an unused
redis.yaml
andredis_deprecated.yaml
in theexamples
folder, and they still usev1beta2
. I think we should also remove those two. Or are those used in a weird test setup somewhere?
Yup, good call out here. Done in a193b1a
This is a little bit of a a strange one. These aren't for v1beta2, they're for v1beta1. I was considering deleting the YAML files and the README, but I imagine that someone on an old (ancient?) version may need those instructions to migrate. Additionally, the MIGRATE.md file is quite out of date (ie: it doesn't mention v1) I'm unsure if we should leave them as is, and remove them all in the future. Or just delete them all now, as they are in git history. Thoughts? |
I didn't find references to the /approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: adrianmoisey, voelzmo 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 |
@@ -118,107 +118,6 @@ spec: | |||
type: object | |||
served: true | |||
storage: true | |||
- name: v1beta2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what ensures all existing persisted data in v1beta2 format is migrated to the new storage format? is there a reason to remove this rather than switching it to served:false
by default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not too sure really. I had a look at what was done with v1beta1, and since it wasn't listed here, I assumed it just needed to be deleted.
Is there a best practice that we can follow to remove APIs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @liggitt, thanks for jumping in here!
what ensures all existing persisted data in v1beta2 format is migrated to the new storage format
Just to elaborate on our thought process:
v1beta2 has storage: false
since vpa release 0.10.0, which happened 3 years ago: 99a4a7a
Technically, I guess you're right that it could happen that people still have VPAs from 3 years ago in their clusters. In the previous occasion which @adrianmoisey mentioned, the onus was put on the user to do this: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/MIGRATE.md#notice-on-switching-to-v1beta2-version-03x-to-040
We can also just set served: false
and continue with this path, as you suggested.
EDIT: fixed the dates, sorry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v1beta2 has storage: false since vpa release 0.10.0, which happened 3 years ago: 99a4a7a
unless something always automatically writes to all existing VPA objects, just the passage of time doesn't guarantee existing objects have been touched / updated
I would start by just setting served: false
, since that ensures you won't break existing persisted data.
I also don't really know how user-facing this API is... consumers of this API who have users still writing manifests against v1beta2 would consider dropping serving of it a breaking change, and might not be able to consume updates any more... starting with served: false
gives them a trivial way to switch back to served: true
and start more active outreach / migration of their users
a193b1a
to
1355f41
Compare
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Remove v1beta2 API
Which issue(s) this PR fixes:
Fixes #5922
Special notes for your reviewer:
I'm unsure if there is anything else that needs to happen to remove this API
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: