Skip to content

Conversation

@maxcao13
Copy link
Member

@maxcao13 maxcao13 commented Oct 10, 2025

Which issue(s) this PR fixes:

Part of: #8587

Adds to the VPA helm chart:

For vpa-recommender:

  • Deployment
  • ServiceAccount
  • RBAC (ClusterRole, RoleBinding)
  • ConfigMap (optional tuning parameters)
  • PodDisruptionBudget
  • nodeSelector / affinity / tolerations

Updates chart version to 0.4.0.

What type of PR is this?

/kind feature

You can test it out by using this:

helm upgrade --install vpa ./vertical-pod-autoscaler/charts/vertical-pod-autoscaler/ \
  -n vpa --create-namespace \
  --set recommender.enabled=true \
  --set recommender.replicas=2 \
  --set recommender.image.tag=1.5.0 \
  --set recommender.image.pullPolicy=Always \
  --set-json 'recommender.podLabels={"environment":"test","team":"autoscaling"}' \
  --set-json 'recommender.podAnnotations={"prometheus.io/scrape":"true","prometheus.io/port":"8942"}' \
  --set-json 'recommender.serviceAccount.labels={"app":"vpa"}' \
  --set-json 'recommender.serviceAccount.annotations={"example.com/owner":"platform-team"}' \
  --set-json 'recommender.nodeSelector={"kubernetes.io/os":"linux"}' \
  --set-json 'recommender.tolerations=[{"key":"dedicated","operator":"Equal","value":"system","effect":"NoSchedule"}]' \
  --set-json 'recommender.affinity={"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":100,"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app.kubernetes.io/component","operator":"In","values":["recommender"]}]},"topologyKey":"kubernetes.io/hostname"}}]}}' \
  --set recommender.resources.limits.cpu=500m \
  --set recommender.resources.limits.memory=2Gi \
  --set recommender.resources.requests.cpu=100m \
  --set recommender.resources.requests.memory=512Mi \
  --set-json 'recommender.extraArgs=["--v=5","--pod-recommendation-min-cpu-millicores=15","--pod-recommendation-min-memory-mb=100","--leader-elect=true","--leader-elect-resource-namespace=vpa"]' \
  --set-json 'recommender.extraEnv=[{"name":"LOG_LEVEL","value":"debug"},{"name":"GOMAXPROCS","value":"4"}]' \
  --set recommender.podDisruptionBudget.enabled=true \
  --set recommender.podDisruptionBudget.minAvailable=1

Special notes for your reviewer:

I was mostly just following the existing manifests in veritcal-pod-autoscaler/deploy/*.yaml

Does this PR introduce a user-facing change?


@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. 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-area area/helm-charts labels Oct 10, 2025
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed do-not-merge/needs-area labels Oct 10, 2025
@maxcao13
Copy link
Member Author

maxcao13 commented Oct 10, 2025

/hold
because of #8617

I will also let #8642 merge first because it is changing chart release version.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 10, 2025
@maxcao13
Copy link
Member Author

/release-note-none

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed 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 Oct 10, 2025
@adrianmoisey
Copy link
Member

I believe you are unblocked now

@maxcao13
Copy link
Member Author

Sorry, I was on holiday 😅 , I can rebase today.

@maxcao13 maxcao13 force-pushed the vpa-chart-recommender branch from 813dfe8 to 9b2a83d Compare October 17, 2025 20:23
@k8s-ci-robot k8s-ci-robot added area/vertical-pod-autoscaler size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Oct 17, 2025
@maxcao13 maxcao13 force-pushed the vpa-chart-recommender branch from 9b2a83d to 9d4e5c5 Compare October 17, 2025 20:27
@maxcao13
Copy link
Member Author

/unhold

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 18, 2025
@maxcao13 maxcao13 force-pushed the vpa-chart-recommender branch from 9d4e5c5 to f82068f Compare October 20, 2025 17:34
Copy link
Member

@omerap12 omerap12 left a comment

Choose a reason for hiding this comment

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

Overall lgtm

@omerap12
Copy link
Member

I tested it using the default setup:
helm upgrade --install vpa ./vertical-pod-autoscaler/charts/vertical-pod-autoscaler/ -n vpa --create-namespace
Since this is the typical way users would install it, it makes sense to test it that way. looks good to me.

Adds to the VPA helm chart for the recommender:
- Deployment
- ServiceAccount
- RBAC (ClusterRole, RoleBinding)
- ConfigMap (optional tuning parameters)
- PodDisruptionBudget
- nodeSelector / affinity / tolerations
- High availibility by default + leader-election logic

Signed-off-by: Max Cao <[email protected]>
@maxcao13 maxcao13 force-pushed the vpa-chart-recommender branch from f82068f to f4a8aea Compare October 22, 2025 15:59
Copy link
Member

@omerap12 omerap12 left a comment

Choose a reason for hiding this comment

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

Thanks Max!
/lgtm
/assign @adrianmoisey

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 22, 2025
@adrianmoisey
Copy link
Member

/approve

thank you!

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: adrianmoisey, maxcao13

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 Oct 23, 2025
@k8s-ci-robot k8s-ci-robot merged commit e3dc09c into kubernetes:master Oct 23, 2025
8 checks passed
@maxcao13 maxcao13 deleted the vpa-chart-recommender branch October 23, 2025 05:52
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/helm-charts area/vertical-pod-autoscaler cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants