yunikorn-k8shim icon indicating copy to clipboard operation
yunikorn-k8shim copied to clipboard

[YUNIKORN-1196] Build against Kubernetes 1.23.12

Open craigcondit opened this issue 2 years ago • 5 comments

What is this PR for?

Update build dependencies to Kubernetes 1.23.12. This provides better support for newer Kubernetes releases. However, this will drop support for running on Kubernetes releases earlier than 1.21.

What type of PR is it?

  • [ ] - Bug Fix
  • [x] - Improvement
  • [ ] - Feature
  • [ ] - Documentation
  • [ ] - Hot Fix
  • [ ] - Refactoring

Todos

  • [ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/YUNIKORN-1196

How should this be tested?

E2e tests are provided and test matrix has been updated.

Screenshots (if appropriate)

Questions:

  • [ ] - The licenses files need update.
  • [x] - There is breaking changes for older versions.
  • [ ] - It needs documentation.

craigcondit avatar Sep 27 '22 00:09 craigcondit

Codecov Report

Merging #466 (a0f93e1) into master (d814750) will decrease coverage by 0.26%. The diff coverage is 21.11%.

:exclamation: Current head a0f93e1 differs from pull request most recent head 3655aba. Consider uploading reports for the commit 3655aba to get more accurate results

@@            Coverage Diff             @@
##           master     #466      +/-   ##
==========================================
- Coverage   68.33%   68.07%   -0.27%     
==========================================
  Files          42       42              
  Lines        7015     7048      +33     
==========================================
+ Hits         4794     4798       +4     
- Misses       2050     2080      +30     
+ Partials      171      170       -1     
Impacted Files Coverage Δ
pkg/cache/context.go 45.10% <0.00%> (+2.42%) :arrow_up:
pkg/cache/task.go 66.92% <0.00%> (-1.62%) :arrow_down:
pkg/plugin/support/framework_handle.go 22.03% <2.77%> (-25.97%) :arrow_down:
pkg/plugin/predicates/predicate_manager.go 50.73% <45.71%> (+0.54%) :arrow_up:
pkg/cache/external/scheduler_cache.go 43.70% <100.00%> (+1.96%) :arrow_up:
pkg/common/utils/utils.go 59.39% <0.00%> (-5.17%) :arrow_down:
pkg/schedulerplugin/conf/pluginconf.go 86.84% <0.00%> (-0.23%) :arrow_down:
pkg/appmgmt/general/metadata.go 85.52% <0.00%> (-0.19%) :arrow_down:
pkg/shim/scheduler.go 73.33% <0.00%> (+0.60%) :arrow_up:
... and 3 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov[bot] avatar Sep 27 '22 00:09 codecov[bot]

Hi, wanted to mention that building against 1.23.12 fixed YUNIKORN-1253 Tested on openshift 4.10.15 (Which is using v1.23.5+9ce5071), with yunikorn Helm chart deployed as standalone scheduler w/o the admission controller. Guessing the problem was that Generic ephemeral volumes were added in 1.23

VladZ97 avatar Sep 28 '22 15:09 VladZ97

Hi, wanted to mention that building against 1.23.12 fixed YUNIKORN-1253 Tested on openshift 4.10.15 (Which is using v1.23.5+9ce5071), with yunikorn Helm chart deployed as standalone scheduler w/o the admission controller. Guessing the problem was that Generic ephemeral volumes were added in 1.23

Unfortunately, there's still some issues here, especially when running in plugin mode. It seems the default scheduler logic in 1.23.x puts the pods into an internal unschedulable queue when they are not yet ready to be scheduled by YuniKorn, where they remain for quite some time (sometimes over a minute). Until that's solved, this will be blocked.

craigcondit avatar Sep 28 '22 15:09 craigcondit

Unfortunately, there's still some issues here, especially when running in plugin mode. It seems the default scheduler logic in 1.23.x puts the pods into an internal unschedulable queue when they are not yet ready to be scheduled by YuniKorn, where they remain for quite some time (sometimes over a minute). Until that's solved, this will be blocked.

That should hopefully change when we have KEP-3521 fixed on the K8s side. With that change in place a pod can be marked not ready for scheduling and YuniKorn can release it.

wilfred-s avatar Sep 29 '22 03:09 wilfred-s

Code coverage decrease is expected, as there are now several no-op stub functions necessary in framework_handle.go. These are never called but are needed to satisfy the FrameworkHandle interface in K8s 1.23.

craigcondit avatar Oct 12 '22 21:10 craigcondit

Rebased on master since we have conflicts.

craigcondit avatar Nov 16 '22 01:11 craigcondit