Skip to content

Commit

Permalink
[YUNIKORN-2384] YuniKorn 1.5.0 Release Notes (#405)
Browse files Browse the repository at this point in the history
Closes: #405
  • Loading branch information
craigcondit committed Mar 13, 2024
1 parent 38f3568 commit f7d1d25
Showing 1 changed file with 195 additions and 0 deletions.
195 changes: 195 additions & 0 deletions src/pages/release-announce/1.5.0.md
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.

0 comments on commit f7d1d25

Please sign in to comment.