You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Peter Bacsko (Jira)" <ji...@apache.org> on 2023/07/31 22:34:00 UTC

[jira] [Resolved] (YUNIKORN-1740) [Umbrella] MockScheduler improvements

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

Peter Bacsko resolved YUNIKORN-1740.
------------------------------------
    Fix Version/s: 1.4.0
       Resolution: Fixed

> [Umbrella] MockScheduler improvements
> -------------------------------------
>
>                 Key: YUNIKORN-1740
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1740
>             Project: Apache YuniKorn
>          Issue Type: Improvement
>          Components: shim - kubernetes, test - unit
>            Reporter: Peter Bacsko
>            Assignee: Peter Bacsko
>            Priority: Major
>             Fix For: 1.4.0
>
>
> With the {{MockScheduler}} object, it's possible to test Yunikorn as a whole without having an actual Kubernetes cluster.
> Currently, {{MockScheduler}} has some limitations. For example:
>  * adding node only updates the core, not the shim
>  * recovery is skipped (ignored because of {{{}APIProvider.IsTestingMode(){}}})
>  * predicates are not called (ignored because of {{{}APIProvider.IsTestingMode(){}}})
>  * cannot simulate shared informer calls like {{{}AddPod(){}}}, {{{}UpdatePod(){}}}, etc.
> However, it's possible to update the logic in such a way that we can simulate the entire lifecycle of an application (ie. all relevant code paths):
>  * New {{*v1.Pod}} object -> shim -> SI object -> core -> allocation
>  * allocation -> SI object -> shim -> bind pod
>  * Running state: updated {{*v1.Pod}} -> shim -> process pod object in the cache
>  * Completed/Failed state: updated {{*v1.Pod}} -> shim > process pod object in the cache -> SI object -> core -> update application state
>  * {{*v1.Node}} object -> shim -> update cache -> SI object -> core -> node&cluster update
> This can also gives us a possibility to check the performance of Yunikorn and collect CPU&heap samples. This will *not* be a replacement of a real performance test, but with a proper test case, we can quickly do a rough assessment of performance/memory usage related changes.



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

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