Hello everyone, I would like to call a vote for releasing Apache YuniKorn 1.0.0 RC1. The first release for Apache YuniKorn as a top level project. Please note that the location of artefacts and the KEYS file has changed as we are now a top level project.
The release artefacts have been uploaded here: https://dist.apache.org/repos/dist/dev/yunikorn/1.0.0-RC1/ My public key is located in the KEYS file: https://downloads.apache.org//yunikorn/KEYS JIRA issues that have been resolved in this release: https://issues.apache.org/jira/issues/?filter=12350818 The release contains a number of incompatible changes that could impact the release verification. Please read the draft release notes attached to this vote for further details. Git tags for each component are as follows: yunikorn-scheduler-interface: v1.0.0-1 yunikorn-core: v1.0.0-1 yunikorn-k8shim: v1.0.0-2 yunikorn-web: v1.0.0-1 yunikorn-release: v1.0.0-1 Once the release is voted on and approved, all repos will be tagged 1.0.0 for consistency. Please review and vote. The vote will be open for at least 72 hours and closes on Sunday, 1 May 2022, midnight PDT. [ ] +1 Approve [ ] +0 No opinion [ ] -1 Disapprove (and the reason why) Thank you, Wilfred
<!-- 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. --> ## Incompatible changes As part of this release a number of incompatible changes have been introduced. ### helm upgrade With the changes made to the helm charts running a helm upgrade from an older version to 1.0.0 might not work. The workaround is to first uninstall the old version and then perform a clean installation of the current release. ### Configuration changes [YUNIKORN-629](https://issues.apache.org/jira/browse/YUNIKORN-629) adds size modifiers to the queue configuration. This changes the way quota values are interpreted in the configuration. Before 1.0.0 all memory values were interpreted as _megabytes_ and vcore values as _milli cores_. From 1.0.0 onwards memory values are specified in **bytes** and vcores are specified in **cores**. To maintain the same interpretation of values in the configuration make the following changes to the pre 1.0.0 configuration: | type | change | old value | new value | |--------|--------|--------------|---------------| | memory | add M | memory: 2048 | memory: 2048M | | vcore | add m | vcore: 250 | vcore: 250m | ### Resource Display and Communication [YUNIKORN-1105](https://issues.apache.org/jira/browse/YUNIKORN-1105) converts memory resources to bytes before use or display. The conversion of memory resources by the k8shim into megabytes could cause a discrepancy between the size accounted for by the Kubernetes tools and YuniKorn. This could lead to issues around node fits and autoscaling of nodes. In 1.0.0 all memory resources are converted to bytes before being used in calculation. [YUNIKORN-165](https://issues.apache.org/jira/browse/YUNIKORN-165) displays resources as JSON structures. Resources in all REST response objects are no longer a single string but are JSON structures using a key value pair for each resource type. An example of the new resource JSON response object: ```json "allocatedResource": { "memory": 54000000, "vcore": 80 } ``` The change for using bytes in all communication for memory flows through into the REST response objects. ### Timestamps in REST responses [YUNIKORN-1170](https://issues.apache.org/jira/browse/YUNIKORN-1170) timestamps are int64. All timestamps in the rest API are now returned as the number of nanoseconds elapsed since 1 January 1970 UTC. ### Removal of old REST API endpoints [YUNIKORN-954](https://issues.apache.org/jira/browse/YUNIKORN-954) The REST API has been updated with endpoints that support specifying partitions. The old versions which do not take a partition argument have been removed: - `/ws/v1/queues` replaced with `/ws/v1/partition/{partitionName}/queues` - `/ws/v1/apps` replaced with `/ws/v1/partition/{partitionName}/apps` - `/ws/v1/nodes` replaced with `/ws/v1/partition/{partitionName}/nodes` ## Highlights ### Plugin mode technical Preview As part of this release a new deployment mode is added which is build on top of the Scheduler Plugin Framework. This is a major change in the way the scheduler k8shim works. As the implementation is not considered mature as yet the deployment mode is considered a tech preview. The design document can be found on the website as the [K8s Scheduler Plugin](https://yunikorn.apache.org/docs/next/design/scheduler_plugin) design document. Both standard and plugin deployment images are build by the default build process. Making a choice between the deployment modes is [based on a helm variable](https://yunikorn.apache.org/docs/next/user_guide/deployment_modes). ### Memory and cpu usage fixes As part of the release the communication between the core and the k8shim has been simplified [YUNIKORN-462](https://issues.apache.org/jira/browse/YUNIKORN-462). Using those changes the caches in the k8shim have been simplified and numerous memory leaks have been fixed [YUNIKORN-876](https://issues.apache.org/jira/browse/YUNIKORN-876) and [YUNIKORN-1100](https://issues.apache.org/jira/browse/YUNIKORN-1100). An idle loop in the core has been removed which drops CPU usage of the scheduler if no scheduling action are performed [YUNIKORN-1106](https://issues.apache.org/jira/browse/YUNIKORN-1106). ### Security improvements A number of changes have been made to improve security. The scheduler no longer uses cluster-admin privileges. The privileges used line up with the default scheduler with additional privileges required for placeholder pods [YUNIKORN-997](https://issues.apache.org/jira/browse/YUNIKORN-997). The processes within the docker images no longer run as the `root` user but use the `yunikorn` user [YUNIKORN-1111](https://issues.apache.org/jira/browse/YUNIKORN-1111). Certificates used by the admission controller are automatically rotated before they expire without downtime [YUNIKORN-1119](https://issues.apache.org/jira/browse/YUNIKORN-1119). Placeholders use an external pause image. YuniKorn now accepts an image name, including a hostname, that can use a local repository for air-gapped deployments [YUNIKORN-638](https://issues.apache.org/jira/browse/YUNIKORN-638). ## Community Since the last release Apache YuniKorn has graduated from the incubator.
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
