Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions doap_YuniKorn.rdf
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@
<programming-language>JavaScript</programming-language>
<category rdf:resource="https://projects.apache.org/category/cloud" />
<release>
<Version>
<name>YuniKorn 1.7.0</name>
<created>2025-07-28</created>
<revision>1.7.0</revision>
</Version>
<Version>
<name>YuniKorn 1.6.3</name>
<created>2025-05-06</created>
Expand Down
2 changes: 1 addition & 1 deletion docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ module.exports = {
announcementBar: {
id: 'new_release',
content:
'1.6.3 has been released, check the <a href="/community/download">DOWNLOADS</a>.',
'1.7.0 has been released, check the <a href="/community/download">DOWNLOADS</a>.',
backgroundColor: '#fafbfc',
textColor: '#091E42',
},
Expand Down
2 changes: 1 addition & 1 deletion src/pages/community/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ The latest release of Apache YuniKorn is v1.6.3.

| Version | Release date | Source download | Docker images | Release notes |
|---------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| v1.7.0 | 2025-07-28 | [Download](https://www.apache.org/dyn/closer.lua/yunikorn/1.7.0/apache-yunikorn-1.7.0-src.tar.gz)<br/>[Checksum](https://downloads.apache.org/yunikorn/1.7.0/apache-yunikorn-1.7.0-src.tar.gz.sha512) & [Signature](https://downloads.apache.org/yunikorn/1.7.0/apache-yunikorn-1.7.0-src.tar.gz.asc) | [scheduler](https://hub.docker.com/layers/apache/yunikorn/scheduler-1.7.0/images/sha256-51262e07493f9beadf4488aefc23877d553597bfb0705b00303e88470ae98ae4)<br/>[admission-controller](https://hub.docker.com/layers/apache/yunikorn/admission-1.7.0/images/sha256-6398839ae00bf6227cb8322e4b7c206f055e68ba7eba351cd9822041e6b8a255)<br/>[web](https://hub.docker.com/layers/apache/yunikorn/web-1.7.0/images/sha256-bf348d8473cc417327c6a3e9b672ca95a4ad969e102185e86243e774ab14dcee)<br/>[scheduler plugin](https://hub.docker.com/layers/apache/yunikorn/scheduler-plugin-1.7.0/images/sha256-339af0d36f1dfaf514fa4e9d8fa83ceec03b88032fe7a1ffc211812a63b968f0) | [Announcement](/release-announce/1.7.0) |
| v1.6.3 | 2025-05-06 | [Download](https://www.apache.org/dyn/closer.lua/yunikorn/1.6.3/apache-yunikorn-1.6.3-src.tar.gz)<br/>[Checksum](https://downloads.apache.org/yunikorn/1.6.3/apache-yunikorn-1.6.3-src.tar.gz.sha512) & [Signature](https://downloads.apache.org/yunikorn/1.6.3/apache-yunikorn-1.6.3-src.tar.gz.asc) | [scheduler](https://hub.docker.com/layers/apache/yunikorn/scheduler-1.6.3/images/sha256-093cea908ac49b8c2434db3b7b7eb3c0015f0a401af8c20da2b42f7bb42ebfff)<br/>[admission-controller](https://hub.docker.com/layers/apache/yunikorn/admission-1.6.3/images/sha256-ecca4134dc3417b1e8357fe309b2a55cb45a911fa3f678ed6e68f5ba87cdc2c9)<br/>[web](https://hub.docker.com/layers/apache/yunikorn/web-1.6.3/images/sha256-702a814dbd783f610b51729e7ae9d0a5b25e9e9441c7cbfeebcb125a8cb31ac2)<br/>[scheduler plugin](https://hub.docker.com/layers/apache/yunikorn/scheduler-plugin-1.6.3/images/sha256-713ae590d44d60429dcb0ba1781acb7b775cc89d1ac620af97327bec7c4dfbcc) | [Announcement](/release-announce/1.6.3) |
| v1.6.2 | 2025-03-18 | [Download](https://archive.apache.org/dist/yunikorn/1.6.2/apache-yunikorn-1.6.2-src.tar.gz)<br/>[Checksum](https://archive.apache.org/dist/yunikorn/1.6.2/apache-yunikorn-1.6.2-src.tar.gz.sha512) & [Signature](https://darchive.apache.org/dist/yunikorn/1.6.2/apache-yunikorn-1.6.2-src.tar.gz.asc) | [scheduler](https://hub.docker.com/layers/apache/yunikorn/scheduler-1.6.2/images/sha256-f7493e1be1e71a5c01d43367bda3240e41f9c801da27d8491f9827fda9aa1fac)<br/>[admission-controller](https://hub.docker.com/layers/apache/yunikorn/admission-1.6.2/images/sha256-957b95a7f392bd5c70454f7d42fc1f992124cc6bc323e8488fb2560cc1573361)<br/>[web](https://hub.docker.com/layers/apache/yunikorn/web-1.6.2/images/sha256-696c76d376648f1dcaefc3740a7f9db3f837e376dae0073ed3dfd4948ed429ab)<br/>[scheduler plugin](https://hub.docker.com/layers/apache/yunikorn/scheduler-plugin-1.6.2/images/sha256-cdc594d48f9ed39b0b134389e6c3253fe7b2db204c905b2eb573ee008863245f) | [Announcement](/release-announce/1.6.2) |
| v1.5.2 | 2024-07-26 | [Download](https://archive.apache.org/dist/yunikorn/1.5.2/apache-yunikorn-1.5.2-src.tar.gz)<br/>[Checksum](https://archive.apache.org/dist/yunikorn/1.5.2/apache-yunikorn-1.5.2-src.tar.gz.sha512) & [Signature](https://archive.apache.org/dist/yunikorn/1.5.2/apache-yunikorn-1.5.2-src.tar.gz.asc) | [scheduler](https://hub.docker.com/layers/apache/yunikorn/scheduler-1.5.2/images/sha256-611d3cf1084a4d0f5e71a75d9c3e592b5a31061ad68d2595359dbee7b2c4aedf)<br/>[admission-controller](https://hub.docker.com/layers/apache/yunikorn/admission-1.5.2/images/sha256-4f04e64c02f595ff11eef1a956c939d2c6bcaf4983f5d167339542678ed7c0cc)<br/>[web](https://hub.docker.com/layers/apache/yunikorn/web-1.5.2/images/sha256-2e090a87593d210e037f3bb80b5633a7e0f7ddad1d92474003ad380eda1c28b7)<br/>[scheduler plugin](https://hub.docker.com/layers/apache/yunikorn/scheduler-plugin-1.5.2/images/sha256-d28f2724b0e2608682cf6506022bbedbc30938c9644155fa9e676269c7e688b1) | [Announcement](/release-announce/1.5.2) |

## Verifying the signature

Expand Down
69 changes: 69 additions & 0 deletions src/pages/release-announce/1.7.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
id: rn-1.7.0
title: Release Announcement v1.7.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.7.0

We are pleased to announce that the Apache YuniKorn community has voted to release 1.7.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 168 [JIRAs](https://issues.apache.org/jira/issues/?filter=12353609) in this release.

Release manager: Peter Bacsko

Release date: 2025-07-28

## Highlights

### Kubernetes 1.32 support

Apache YuniKorn 1.7.0 add supports for Kubernetes 1.32. See [YUNIKORN-2996](https://issues.apache.org/jira/browse/YUNIKORN-2996) for details.

### Latest in-place pod vertical scaling support

Modifying pod resource usage in-place is now supported according to the latest spec (alpha in v1.32).
See [YUNIKORN-3053](https://issues.apache.org/jira/browse/YUNIKORN-3053) for details.

### Pod level resources limits support (KEP-2837)

With Kubernetes 1.32, it's possible to set resource limits on a pod level instead of a container level.
See [YUNIKORN-3039](https://issues.apache.org/jira/browse/YUNIKORN-3039) for details.

### GOGC / GOMEMLIMIT can be adjusted in the helm chart

Two environment variables, GOGC and GOMEMLIMIT are now easy to modify in the helm chart.
See [YUNIKORN-3000](https://issues.apache.org/jira/browse/YUNIKORN-3000) for details.

### Proper tracking of non-Yunikorn (foreign) pods

Before 1.7.0, only the total resource usage of foreign pods has been tracked. With the new release, Apache YuniKorn properly tracks non-Yunikorn pods in the scheduler core,
enhancing supportability. Pods scheduled by different schedulers are listed in the REST response when doing state dump or listing nodes.
See [YUNIKORN-2791](https://issues.apache.org/jira/browse/YUNIKORN-2791) for details.

### Metrics improvements

Metrics for scheduling cycle and node evaluation was added in [YUNIKORN-2930](https://issues.apache.org/jira/browse/YUNIKORN-2930). Metric for maxRunningApps was added
in [YUNIKORN-2854](https://issues.apache.org/jira/browse/YUNIKORN-2854).
264 changes: 264 additions & 0 deletions versioned_docs/version-1.7.0/api/cluster.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
---
id: cluster
title: Cluster
---

<!--
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.
-->

## Clusters

Returns general information about the clusters managed by the YuniKorn Scheduler.
The response includes build information about resource managers.

**URL** : `/ws/v1/clusters`

**Method** : `GET`

**Auth required** : NO

### Success response

**Code** : `200 OK`

**Content examples**

As an example, here is a response from a cluster with 1 resource manager.

```json
[
{
"startTime": 1697100824863892713,
"rmBuildInformation": [
{
"arch": "amd64",
"buildDate": "2023-09-04T18:11:43+0800",
"buildVersion": "latest",
"coreSHA": "0ecf24d2aad2",
"goVersion": "1.21",
"isPluginVersion": "false",
"rmId": "mycluster",
"shimSHA": "8b26c373b4b5",
"siSHA": "e7622cf54e95"
}
],
"partition": "default",
"clusterName": "kubernetes"
}
]
```

### Error response

**Code** : `500 Internal Server Error`

## Metrics

Endpoint to retrieve metrics from the Prometheus server.
The metrics are dumped with help messages and type information.

**URL** : `/ws/v1/metrics`

**Method** : `GET`

**Auth required** : NO

### Success response

**Code** : `200 OK`

**Content examples**

```text
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 2.567e-05
go_gc_duration_seconds{quantile="0.25"} 3.5727e-05
go_gc_duration_seconds{quantile="0.5"} 4.5144e-05
go_gc_duration_seconds{quantile="0.75"} 6.0024e-05
go_gc_duration_seconds{quantile="1"} 0.00022528
go_gc_duration_seconds_sum 0.021561648
go_gc_duration_seconds_count 436
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 82
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.12.17"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 9.6866248e+07
...
# HELP yunikorn_scheduler_vcore_nodes_usage Nodes resource usage, by resource name.
# TYPE yunikorn_scheduler_vcore_nodes_usage gauge
yunikorn_scheduler_vcore_nodes_usage{range="(10%, 20%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(20%,30%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(30%,40%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(40%,50%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(50%,60%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(60%,70%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(70%,80%]"} 1
yunikorn_scheduler_vcore_nodes_usage{range="(80%,90%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="(90%,100%]"} 0
yunikorn_scheduler_vcore_nodes_usage{range="[0,10%]"} 0
```

## Configuration

Endpoint to retrieve the current scheduler configuration

**URL** : `/ws/v1/config`

**Method** : `GET`

**Auth required** : NO

### Success response

**Code** : `200 OK`

**Content example (with `Accept: application/json` header)**

```json
{
"Partitions": [
{
"Name": "default",
"Queues": [
{
"Name": "root",
"Parent": true,
"Resources": {},
"SubmitACL": "*",
"ChildTemplate": {
"Resources": {}
}
}
],
"PlacementRules": [
{
"Name": "tag",
"Create": true,
"Filter": {
"Type": ""
},
"Value": "namespace"
}
],
"Preemption": {
"Enabled": false
},
"NodeSortPolicy": {
"Type": ""
}
}
],
"Checksum": "FD5D3726DF0F02416E02F3919D78F61B15D14425A34142D93B24C137ED056946",
"Extra": {
"event.trackingEnabled": "false",
"log.core.scheduler.level": "info",
"log.core.security.level": "info",
"log.level": "debug"
}
}
```

**Content example (without `Accept: application/json` header)**

```yaml
partitions:
- name: default
queues:
- name: root
parent: true
submitacl: "*"
placementrules:
- name: tag
create: true
value: namespace
checksum: FD5D3726DF0F02416E02F3919D78F61B15D14425A34142D93B24C137ED056946
extra:
event.trackingEnabled: "false"
log.core.scheduler.level: info
log.core.security.level: info
log.level: debug

```

## Configuration validation

**URL** : `/ws/v1/validate-conf`

**Method** : `POST`

**Auth required** : NO

### Success response

Regardless whether the configuration is allowed or not if the server was able to process the request, it will yield a 200 HTTP status code.

**Code** : `200 OK`

#### Allowed configuration

Sending the following simple configuration yields an accept

```yaml
partitions:
- name: default
queues:
- name: root
queues:
- name: test
```
Reponse
```json
{
"allowed": true,
"reason": ""
}
```

#### Disallowed configuration

The following configuration is not allowed due to the "wrong_text" field put into the yaml file.

```yaml
partitions:
- name: default
queues:
- name: root
queues:
- name: test
- wrong_text
```
Reponse
```json
{
"allowed": false,
"reason": "yaml: unmarshal errors:\n line 7: cannot unmarshal !!str `wrong_text` into configs.PartitionConfig"
}
```

Loading