- 
                Notifications
    
You must be signed in to change notification settings  - Fork 4.2k
 
Add e2e tests for CPU startup boost #8672
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
base: experimental-cpu-boost
Are you sure you want to change the base?
Add e2e tests for CPU startup boost #8672
Conversation
| 
           [APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: kamarabbas99 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   | 
    
| 
           /cc omerap12 adrianmoisey laoj2  | 
    
| 
           /area vertical-pod-autoscaler  | 
    
b25e243    to
    e3a83fd      
    Compare
  
    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.
Overall looks good to me, but I wasn't able to run the tests locally.
I exported the following:
export FEATURE_GATES=CPUStartupBoost=trueAnd changed this:
diff --git a/vertical-pod-autoscaler/hack/run-e2e-tests.sh b/vertical-pod-autoscaler/hack/run-e2e-tests.sh
index f7f724925..9447abc82 100755
@@ -50,7 +50,7 @@ case ${SUITE} in
   recommender|updater|admission-controller|actuation|full-vpa)
     export KUBECONFIG=$HOME/.kube/config
     pushd ${SCRIPT_ROOT}/e2e
-    go test ./v1/*go -v --test.timeout=150m --args --ginkgo.v=true --ginkgo.focus="\[VPA\] \[${SUITE}\]" --report-dir=${WORKSPACE} --disable-log-dump --ginkgo.timeout=150m
+    go test ./v1/*go -v --test.timeout=150m --args --ginkgo.v=true --ginkgo.focus="\[VPA\] \[${SUITE}\]" --report-dir=${WORKSPACE} --ginkgo.label-filter="FG:CPUStartupBoost" --disable-log-dump --ginkgo.timeout=150m
     V1_RESULT=$?
     popd
     echo v1 test result: ${V1_RESULT}But when I run this:
./vertical-pod-autoscaler/hack/run-e2e-locally.sh updaterI get this:
[sig-autoscaling] [VPA] [updater] [v1] Updater Unboost pods when they become Ready [FG:CPUStartupBoost]
/home/ubuntu/autoscaler/vertical-pod-autoscaler/e2e/v1/updater.go:224
  STEP: Creating a kubernetes client @ 10/27/25 12:23:28.748
  I1027 12:23:28.748322 70130 util.go:453] >>> kubeConfig: /home/ubuntu/.kube/config
  STEP: Building a namespace api object, basename vertical-pod-autoscaling @ 10/27/25 12:23:28.749
  STEP: Waiting for a default service account to be provisioned in namespace @ 10/27/25 12:23:28.757
  STEP: Waiting for kube-root-ca.crt to be provisioned in namespace @ 10/27/25 12:23:28.76
  STEP: Checking CPUStartupBoost cluster feature gate is on @ 10/27/25 12:23:28.762
  STEP: Checking CPUStartupBoost VPA feature gate is enabled for updater @ 10/27/25 12:23:28.762
  STEP: Setting up the Admission Controller status @ 10/27/25 12:23:28.764
  STEP: Setting up a hamster Deployment @ 10/27/25 12:23:28.764
  I1027 12:23:28.769598   70130 warnings.go:110] "Warning: would violate PodSecurity \"restricted:latest\": allowPrivilegeEscalation != false (container \"hamster\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container \"hamster\" must set securityContext.capabilities.drop=[\"ALL\"]), runAsNonRoot != true (pod or container \"hamster\" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container \"hamster\" must set securityContext.seccompProfile.type to \"RuntimeDefault\" or \"Localhost\")"
  I1027 12:23:28.771252 70130 deployment.go:104] deployment status: v1.DeploymentStatus{ObservedGeneration:0, Replicas:0, UpdatedReplicas:0, ReadyReplicas:0, AvailableReplicas:0, UnavailableReplicas:0, TerminatingReplicas:(*int32)(nil), Conditions:[]v1.DeploymentCondition(nil), CollisionCount:(*int32)(nil)}
  STEP: Setting up a VPA CRD @ 10/27/25 12:23:30.778
  I1027 12:23:30.778948 70130 util.go:453] >>> kubeConfig: /home/ubuntu/.kube/config
  I1027 12:23:30.803540 70130 util.go:453] >>> kubeConfig: /home/ubuntu/.kube/config
  STEP: Annotating pods with boost annotation @ 10/27/25 12:23:30.818
  STEP: Waiting for pods to be in-place updated @ 10/27/25 12:23:31.096
  I1027 12:23:31.096062 70130 common.go:585] waiting for at least one pod to be updated without eviction
  I1027 12:25:31.099681 70130 common.go:629] finished waiting for at least one pod to be updated without eviction
  STEP: Deleting the Admission Controller status @ 10/27/25 12:25:31.099
  [FAILED] in [It] - /home/ubuntu/autoscaler/vertical-pod-autoscaler/e2e/v1/updater.go:252 @ 10/27/25 12:25:31.103
  STEP: Destroying namespace "vertical-pod-autoscaling-9135" for this suite. @ 10/27/25 12:25:31.104
• [FAILED] [122.361 seconds]
[sig-autoscaling] [VPA] [updater] [v1] Updater [It] Unboost pods when they become Ready [FG:CPUStartupBoost]
/home/ubuntu/autoscaler/vertical-pod-autoscaler/e2e/v1/updater.go:224
  [FAILED] Unexpected error:
      <context.deadlineExceededError>: 
      context deadline exceeded
      
          {}
  occurred
  In [It] at: /home/ubuntu/autoscaler/vertical-pod-autoscaler/e2e/v1/updater.go:252 @ 10/27/25 12:25:31.103
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
------------------------------Anything I forgot to do?
(when @adrianmoisey PRs will be merged this process will be much better )
| 
           @kamarabbas99: The following test failed, say  
 Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. I understand the commands that are listed here.  | 
    
What type of PR is this?
e2e tests
What this PR does / why we need it:
This PR adds the e2e tests for CPU startup boost
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: