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

What type of PR is this?

/kind feature

You can test it out by using this:

helm upgrade --install vpa ./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?


Adds to the VPA helm chart for the recommender:
- Deployment
- ServiceAccount
- RBAC (ClusterRole, RoleBinding)
- ConfigMap (optional tuning parameters)
- PodDisruptionBudget
- nodeSelector / affinity / tolerations

Signed-off-by: Max Cao <[email protected]>
@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 labels Oct 10, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: maxcao13
Once this PR has been reviewed and has the lgtm label, please assign adrianmoisey for approval. For more information see the 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:

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 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. 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
@k8s-ci-robot
Copy link
Contributor

PR needs rebase.

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.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/helm-charts cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/feature Categorizes issue or PR as related to a new feature. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. release-note-none Denotes a PR that doesn't merit a release note. 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.

2 participants