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.6.3</name>
<created>2025-05-06</created>
<revision>1.6.3</revision>
</Version>
<Version>
<name>YuniKorn 1.6.2</name>
<created>2025-03-18</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.2 has been released, check the <a href="/community/download">DOWNLOADS</a>.',
'1.6.3 has been released, check the <a href="/community/download">DOWNLOADS</a>.',
backgroundColor: '#fafbfc',
textColor: '#091E42',
},
Expand Down
6 changes: 3 additions & 3 deletions src/pages/community/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ All release artifacts should be checked for tampering using GPG or SHA-512.

We publish prebuilt docker images for everyone's convenience.

The latest release of Apache YuniKorn is v1.6.2.
The latest release of Apache YuniKorn is v1.6.3.

| Version | Release date | Source download | Docker images | Release notes |
|---------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| v1.6.2 | 2025-03-18 | [Download](https://www.apache.org/dyn/closer.lua/yunikorn/1.6.2/apache-yunikorn-1.6.2-src.tar.gz)<br/>[Checksum](https://downloads.apache.org/yunikorn/1.6.2/apache-yunikorn-1.6.2-src.tar.gz.sha512) & [Signature](https://downloads.apache.org/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.6.1 | 2025-01-24 | [Download](https://archive.apache.org/dist/yunikorn/1.6.1/apache-yunikorn-1.6.1-src.tar.gz)<br/>[Checksum](https://archive.apache.org/dist/yunikorn/1.6.1/apache-yunikorn-1.6.1-src.tar.gz.sha512) & [Signature](https://darchive.apache.org/dist/yunikorn/1.6.1/apache-yunikorn-1.6.1-src.tar.gz.asc) | [scheduler](https://hub.docker.com/layers/apache/yunikorn/scheduler-1.6.1/images/sha256-4a77f4a22a1eb2cdd1c2c82929caaf750de7fe390b3bb605bb918d5106e11e84)<br/>[admission-controller](https://hub.docker.com/layers/apache/yunikorn/admission-1.6.1/images/sha256-629f843eb90e17c0e0996fc387ec9e78d66e9a5ad6b647aacb8d12ac273cce10)<br/>[web](https://hub.docker.com/layers/apache/yunikorn/web-1.6.1/images/sha256-a89f374e6aab3a863079aa6a374196b0abc72d9d395bdfc92ee9cffc1d93f7ca)<br/>[scheduler plugin](https://hub.docker.com/layers/apache/yunikorn/scheduler-plugin-1.6.1/images/sha256-d96535da063505e4b3a760e7b970746d1ec28a5952deca2a4946e9c6e9a7dcc8) | [Announcement](/release-announce/1.6.1) |
| 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
17 changes: 12 additions & 5 deletions src/pages/release-announce/1.6.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,6 @@ Placeholder pod releases can be counted twice when cleanup of a timed out pod is
requested.
Fixed in [YUNIKORN-2953](https://issues.apache.org/jira/browse/YUNIKORN-2953).

### Improper locking in user/group tracking

YuniKorn could update internal accounting structures unsafely in som cases.
Fixed in [YUNIKORN-3004](https://issues.apache.org/jira/browse/YUNIKORN-3004).

### Helm chart now supports setting GOGC / GOMEMLIMIT

In prior versions, YuniKorn's memory usage was unrestricted and did not
Expand All @@ -90,3 +85,15 @@ environment. The defaults for each container in the Helm chart correspond to

See [YUNIKORN-3000](https://issues.apache.org/jira/browse/YUNIKORN-3000)
for more information.

:::note
[YUNIKORN-3004](https://issues.apache.org/jira/browse/YUNIKORN-3004) was incorrectly marked as fixed in YuniKorn release 1.6.1 and 1.6.2
The fix was correctly backported and released in YuniKorn 1.6.3.

### Improper locking in user/group tracking

YuniKorn could update internal accounting structures unsafely and panic in some cases.
:::



9 changes: 9 additions & 0 deletions src/pages/release-announce/1.6.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,12 @@ Fixed in:
* [YUNIKORN-3041](https://issues.apache.org/jira/browse/YUNIKORN-3041)
* [YUNIKORN-3042](https://issues.apache.org/jira/browse/YUNIKORN-3042)
* [YUNIKORN-3043](https://issues.apache.org/jira/browse/YUNIKORN-3043)

:::note
[YUNIKORN-3004](https://issues.apache.org/jira/browse/YUNIKORN-3004) was incorrectly marked as fixed in YuniKorn release 1.6.1 and 1.6.2.
The fix was correctly backported and released in YuniKorn 1.6.3.

### Improper locking in user/group tracking

YuniKorn could update internal accounting structures unsafely and panic in some cases.
:::
48 changes: 48 additions & 0 deletions src/pages/release-announce/1.6.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
id: rn-1.6.2
title: Release Announcement v1.6.2
---

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

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

Release manager: Wilfred Spiegelenburg

Release date: 2025-05-06

## Highlights

This release is a single bugfix release and contains a critical fix for an issue marked as fixed in YuniKorn 1.6.1 and YuniKorn 1.6.2.

### Improper locking in user/group tracking

YuniKorn could update internal accounting structures unsafely and panic in some cases.

[YUNIKORN-3004](https://issues.apache.org/jira/browse/YUNIKORN-3004) was incorrectly marked as fixed in YuniKorn release 1.6.1 and 1.6.2.
YuniKorn 1..6.1 and 1.6.2 can panic due to improper locking while reading and writing user quota tracking data.
264 changes: 264 additions & 0 deletions versioned_docs/version-1.6.3/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