-
Notifications
You must be signed in to change notification settings - Fork 80
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[YUNIKORN-2384] YuniKorn 1.5.0 Release Notes (#405)
Closes: #405
- Loading branch information
1 parent
38f3568
commit f7d1d25
Showing
1 changed file
with
195 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
--- | ||
id: rn-1.5.0 | ||
title: Release Announcement v1.5.0 | ||
--- | ||
|
||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
# Release Announcement v1.5.0 | ||
We are pleased to announce that the Apache YuniKorn community has voted to release 1.5.0. | ||
Apache YuniKorn is a standalone resource scheduler, designed for managing and scheduling Batch and Data workloads on container | ||
orchestration frameworks like Kubernetes for on-prem and on-cloud use cases. | ||
|
||
## Overview | ||
The Apache YuniKorn community has resolved 219 [JIRAs](https://issues.apache.org/jira/issues/?filter=12353274) in this release. | ||
|
||
Release manager: TingYao Huang | ||
|
||
Release date: 2024-03-01 (TBD) | ||
|
||
## Highlights | ||
|
||
### Kubernetes version support | ||
|
||
YuniKorn 1.5.0 utilizes Kubernetes 1.29.2 as a build dependency, and adds | ||
official runtime support for Kubernetes 1.29 clusters. Kubernetes clusters from | ||
1.24 through 1.29 are supported at runtime. | ||
|
||
### Event streaming API | ||
|
||
Building on the application traceability enhancements released in YuniKorn | ||
1.4.0, YuniKorn 1.5.0 adds support for consumers to subscribe to YuniKorn | ||
events in a streaming fashion. Additionaly, several new event types have | ||
been implemented. See the | ||
[YUNIKORN-2115](https://issues.apache.org/jira/browse/YUNIKORN-2115) umbrella | ||
JIRA for more information. | ||
|
||
### Web UI enhancements | ||
|
||
YuniKorn 1.5.0 includes a number of updates to the Web UI: | ||
|
||
- [YUNIKORN-1362](https://issues.apache.org/jira/browse/YUNIKORN-1362) | ||
Allow node list filtering based on selector | ||
- [YUNIKORN-2088](https://issues.apache.org/jira/browse/YUNIKORN-2088) | ||
Node utilization chart updates | ||
- [YUNIKORN-2214](https://issues.apache.org/jira/browse/YUNIKORN-2214) | ||
Add Sorting functionality to the Allocation view | ||
- [YUNIKORN-2414](https://issues.apache.org/jira/browse/YUNIKORN-2414) | ||
Support air-gapped clusters by embedding fonts and icons | ||
|
||
### Improved Prometheus metric grouping | ||
|
||
YuniKorn queue metrics are now exposed via labels on a common | ||
`yunikorn_queue_app` metric with separate `queue` labels for each queue. | ||
The existing `yunikorn_{queue_name}_queue_app` metrics are still generated, | ||
but will be **deprecated** in YuniKorn 1.6.0 and **removed** in YuniKorn 1.7.0. | ||
See [YUNIKORN-970](https://issues.apache.org/jira/browse/YUNIKORN-970) for | ||
further details. | ||
|
||
### Revamped scheduler initialization support | ||
|
||
YuniKorn 1.5.0 has dramatically simplified the logic used during early | ||
startup to reconcile existing allocations with YuniKorn's internal | ||
state. The result is faster, more stable initialization and better | ||
consistency with the Kubernetes API server. See | ||
[YUNIKORN-2099](https://issues.apache.org/jira/browse/YUNIKORN-2099). | ||
|
||
### Better allocation traceability | ||
|
||
YuniKorn internally tracks asks and allocations by a unique ID. In YuniKorn | ||
1.5.0, the ask ID (typically derived from the Pod UID in Kubernetes) will | ||
be used as the basis for the allocation ID as well. A future enhancement is | ||
planned to unify asks and allocations into a single object for even more | ||
simplified tracking. See | ||
[YUNIKORN-2204](https://issues.apache.org/jira/browse/YUNIKORN-2204) for | ||
information regarding the YuniKorn 1.5.0 changes and | ||
[YUNIKORN-2457](https://issues.apache.org/jira/browse/YUNIKORN-2457) for | ||
future enhancements. | ||
|
||
### REST API enhancements | ||
|
||
The YuniKorn REST API has been enhanced to support the retrieval of | ||
node utilization statistics for multiple resource types in addition to | ||
the existing support for dominant resource type. This allows for more | ||
expressive visualizations in the YuniKorn Web UI. See | ||
[YUNIKORN-2257](https://issues.apache.org/jira/browse/YUNIKORN-2257) for | ||
details. | ||
|
||
Additionally, the REST API now supports querying rejected, running, and | ||
completed applications as well as individual applications without the | ||
need to walk the queue heirarchy first. See | ||
[YUNIKORN-2235](https://issues.apache.org/jira/browse/YUNIKORN-2235). | ||
|
||
## Incompatible changes | ||
|
||
### State-aware scheduling deprecated | ||
|
||
State-aware scheduling has been deprecated in YuniKorn 1.5.0, and will be | ||
removed in YuniKorn 1.6.0. To preserve backwards compatibility, as of YuniKorn | ||
1.6.0, the `stateaware` application sorting policy will be treated as an alias | ||
for `fifo`. Users are encouraged to migrate directly to `fifo` and utilize | ||
gang scheduling or specify queue maximum applications to limit concurrency | ||
instead. See | ||
[YUNIKORN-2440](https://issues.apache.org/jira/browse/YUNIKORN-2440) for | ||
more information. | ||
|
||
### Compressed ConfigMap entry handling | ||
|
||
[YUNIKORN-1875](https://issues.apache.org/jira/browse/YUNIKORN-1875) added | ||
support for compressed ConfigMap entries in YuniKorn 1.4.0 using gzip | ||
compression. Due to an error in the implementation, values were required | ||
to be base64-encoded twice in the resulting YAML in order to be read. | ||
This has been corrected in YuniKorn 1.5.0, but will result in a parsing | ||
error if previously double-encoded data is encountered. See | ||
[YUNIKORN-2287](https://issues.apache.org/jira/browse/YUNIKORN-2287) for | ||
implementation details. | ||
|
||
### Partition vs. root queue limits | ||
|
||
Previously, YuniKorn documentation stated that a root queue limit is equivalent | ||
to a partition limit. However, partition limits did not work correctly. | ||
Partition limits have now updated to be consistent with the documentation. | ||
See [YUNIKORN-2260](https://issues.apache.org/jira/browse/YUNIKORN-2260) for | ||
more information. | ||
|
||
### Application sort policy is no longer inherited | ||
|
||
In old versions of YuniKorn, the `application.sort.policy` queue property | ||
on a parent queue was inherited by child queues. This behavior was deprecated | ||
in favor of child templates in YuniKorn 0.12.1 and has produced warnings | ||
since then. As of YuniKorn 1.5.0, the inheritance of `application.sort.policy` | ||
has been removed. See | ||
[YUNIKORN-809](https://issues.apache.org/jira/browse/YUNIKORN-809) for details. | ||
|
||
### REST API: Periodic state dump endpoint removed | ||
|
||
The `/ws/v1/periodicstatedump` endpoint in the REST API was deprecated | ||
and made a no-op in YuniKorn 1.2.0. It has been removed completely from | ||
YuniKorn 1.5.0. See | ||
[YUNIKORN-2426](https://issues.apache.org/jira/browse/YUNIKORN-2426) for | ||
details. | ||
|
||
### REST API: Response code changes | ||
|
||
Several response status codes in the REST API have been modified to better | ||
conform to best practices. Missing objects will now return 404 (Not Found) | ||
instead of 400 (Bad Request). Disabled features will now return | ||
500 (Internal Server Error) instead of 400 (Bad Request) or 501 | ||
(Not Implemented). See | ||
[YUNIKORN-2163](https://issues.apache.org/jira/browse/YUNIKORN-2163) for further | ||
details. | ||
|
||
### REST API: Health check response code | ||
|
||
The health check REST API endpoint will now return a 200 (OK) regardless | ||
of health status rather than a 503 (Service Unavailable). This allows browser | ||
clients (such as the YuniKorn Web UI) to parse the response in all cases. | ||
To verify the health checks, the JSON response itself shoud be consulted rather | ||
than relying on the HTTP status code. See | ||
[YUNIKORN-1997](https://issues.apache.org/jira/browse/YUNIKORN-1997) for more | ||
information. | ||
|
||
## Credits | ||
The YuniKorn 1.5.0 release would not have been possible without the | ||
hard work of our community and we would like to thank the following | ||
contributors to this release: | ||
|
||
> Alex Stiff, Cliff Su, Craig Condit, Denis Coric, Dong-Lin Hsieh, | ||
Geordie Mai, Hsin-Ying Lee, Hsuan Zong Wu, Jia Sheng Chen, | ||
JiaChi Wang, Junyan Ling, Kuan-Po Tseng, Manikandan Ramaraj, | ||
Michael Akinyemi, Ovidiu Feodorov, Peter Bacsko, PoAn Yang, | ||
Priyansh Choudhary, Qi Zhu, Ryan Lo, Ted Lin, Vinayak Hegde, | ||
Weiwei Yang, Wilfred Spiegelenburg, William Tom, Xie Yifan, | ||
Yongjun Zhang, Yu-Lin Chen | ||
|
||
Additionally, the Apache YuniKorn community would like to welcome new | ||
PMC member Chia-Ping Tsai and new committers Kuan-Po Tseng, Ryan Lo, and | ||
Yu-Lin Chen. | ||
|