You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@yunikorn.apache.org by "Peter Bacsko (Jira)" <ji...@apache.org> on 2025/04/10 13:47:00 UTC

[jira] [Resolved] (YUNIKORN-2864) Add e2e tests for InPlacePodVerticalScaling feature

     [ https://issues.apache.org/jira/browse/YUNIKORN-2864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Peter Bacsko resolved YUNIKORN-2864.
------------------------------------
    Fix Version/s: 1.7.0
       Resolution: Fixed

Merged to master, thanks [~kaichiaboy] for the contribution.

> Add e2e tests for InPlacePodVerticalScaling feature
> ---------------------------------------------------
>
>                 Key: YUNIKORN-2864
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-2864
>             Project: Apache YuniKorn
>          Issue Type: Sub-task
>          Components: shim - kubernetes
>            Reporter: Craig Condit
>            Assignee: Kaichia Chen
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.7.0
>
>
> Build e2e tests to verify YuniKorn behavior when the InPlacePodVerticalScaling feature flag is enabled. This is possible in K8s 1.32 and later. Tests should be skipped on K8s 1.31 or earlier, or if the feature flag is not enabled.
> Proposal:
> We should create a new suite for the tests. As part of the suite initialization, we should create a small pod, and attempt to resize it (see https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/ for an example of how to do this. Basically, a PATCH request needs to be sent to the subresource /resize of the pod on the Kubernetes REST API).
> The initial pod should simply ask for something like 100m CPU, and attempt to resize down to 50m. If that fails (for any reason) skip the rest of the suite, as pod resizing is unavailable in the current cluster.
> If the pre-check succeeds, then continue with the suite. At a minimum we should validate:
> * Pod resize up:
> *# Schedule a pod with 100m CPU
> *# Validate that YuniKorn schedules the pod. Verify that the pod's resource utilization in the YuniKorn REST API is 100m CPU
> *# Patch the pod's /resize sub-resource with CPU: 200m
> *# Wait for the pod.Status.ContainerStatuses[0].Resources.Requests to contain the updated value (with timeout)
> *# Wait for YuniKorn REST API to report 200m CPU used for the pod (with timeout)
> * Pod resize down:
> *# Schedule a pod with 200m CPU
> *# Validate that YuniKorn schedules the pod. Verify that the pod's resource utilization in the YuniKorn REST API is 200m CPU
> *# Patch the pod's /resize sub-resource with CPU: 100m
> *# Wait for the pod.Status.ContainerStatuses[0].Resources.Requests to contain the updated value (with timeout)
> *# Wait for YuniKorn REST API to report 100m CPU used for the pod (with timeout)
> * Pod resize failure:
> *# Schedule a pod with 100m CPU
> *# Validate that YuniKorn schedules the pod. Verify that the pod's resource utilization in the YuniKorn REST API is 100m CPU
> *# Patch the pod's /resize sub-resource with CPU: 100000
> *# Wait for pod.Status.Resize to be equal to "Infeasible" (with timeout)
> *#* Note: This will probably need to change to look for a Pod condition after 1.33, as pod.Status.Resize will be deprecated
> *# Wait for YuniKorn REST API to report 100m CPU used for the pod (with timeout)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: dev-help@yunikorn.apache.org