kubernetes / autoscaler

Autoscaling components for Kubernetes
Apache License 2.0
7.8k stars 3.87k forks source link

VPA: Fix regression where the case of Kind is inconsistant #6929

Open adrianmoisey opened 2 weeks ago

adrianmoisey commented 2 weeks ago

Relates to https://github.com/kubernetes/autoscaler/issues/6924

Previously the case of the Kind in the targetRef didn't matter. Not it seems to matter for the admission-controller.

This change attempts to copy what the HPA does. https://github.com/kubernetes/kubernetes/blob/v1.30.0/pkg/controller/podautoscaler/horizontal.go#L1321-L1325

What type of PR is this?

/kind bug /kind regression

What this PR does / why we need it:

This PR allows users to specify a kind in the targetRef and all 3 VPA components will still continue to work. Prior to this change the admission-controller would ignore the new Pods if the case of the Kind was incorrect.

Which issue(s) this PR fixes:

Fixes # https://github.com/kubernetes/autoscaler/issues/6924

Special notes for your reviewer:

I'm not sure if this solution is the right way to go, but I copied the HPA as best I could, in order to maintain consistent behaviour between the VPA and HPA. Another solution could be to change this line: https://github.com/kubernetes/autoscaler/blob/131d12bbf6ac1f5416f86692def0f227be7a5f64/vertical-pod-autoscaler/pkg/utils/vpa/api.go#L167

It could do a strings.ToLower() before comparison.

Does this PR introduce a user-facing change?

Fix regression of how case was handled in the targetRef

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

k8s-ci-robot commented 2 weeks ago

Hi @adrianmoisey. Thanks for your PR.

I'm waiting for a kubernetes 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](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
adrianmoisey commented 2 weeks ago

/area vertical-pod-autoscaler

k8s-ci-robot commented 2 weeks ago

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: adrianmoisey Once this PR has been reviewed and has the lgtm label, please assign kgolab for approval. For more information see the Kubernetes Code Review Process.

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

Needs approval from an approver in each of these files: - **[vertical-pod-autoscaler/OWNERS](https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/OWNERS)** 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 commented 3 days ago

PR needs rebase.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.