This is an automated email from the ASF dual-hosted git repository.
ccondit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git
The following commit(s) were added to refs/heads/master by this push:
new b02c3076 [YUNIKORN-2815] Run e2e tests against Kubernetes 1.31 (#894)
b02c3076 is described below
commit b02c30769544ee31341ea2c33ddb0b2f6b6d3c70
Author: Craig Condit <[email protected]>
AuthorDate: Mon Aug 19 10:24:58 2024 -0500
[YUNIKORN-2815] Run e2e tests against Kubernetes 1.31 (#894)
Update the ee2e test matrix to include Kubernetes 1.31. Also, set the
InPlacePodVerticalScaling feature flag when running on Kind v1.27.x or
later to facilitate easier testing of pod resizing.
Closes: #894
---
.github/workflows/pre-commit.yml | 16 ++++++++++++---
Makefile | 2 +-
scripts/kind-pod-resize.yaml | 25 +++++++++++++++++++++++
scripts/run-e2e-tests.sh | 44 ++++++++++++++++++++++++++++++++++------
4 files changed, 77 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index ab442ed6..066246f8 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -43,8 +43,18 @@ jobs:
strategy:
fail-fast: false
matrix:
- k8s: [v1.30.0, v1.29.4, v1.28.9, v1.27.13, v1.26.15, v1.25.16,
v1.24.17]
- plugin: ['', '--plugin']
+ k8s:
+ [
+ v1.31.0,
+ v1.30.4,
+ v1.29.8,
+ v1.28.13,
+ v1.27.16,
+ v1.26.15,
+ v1.25.16,
+ v1.24.17,
+ ]
+ plugin: ["", "--plugin"]
steps:
- name: Checkout source code
uses: actions/checkout@v4
@@ -76,5 +86,5 @@ jobs:
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
- name: ${{ github.job }} stdout (${{ matrix.k8s }}${{ matrix.plugin
== '--plugin' && format(', {0}', matrix.plugin) || matrix.plugin }})
+ name: ${{ github.job }} stdout (${{ matrix.k8s }}${{ matrix.plugin
== '--plugin' && format(', {0}', matrix.plugin) || matrix.plugin }})
path: build/e2e
diff --git a/Makefile b/Makefile
index 3c8dd301..d92b1ab9 100644
--- a/Makefile
+++ b/Makefile
@@ -166,7 +166,7 @@ KUBECTL_BIN=$(KUBECTL_PATH)/kubectl
export PATH := $(BASE_DIR)/$(KUBECTL_PATH):$(PATH)
# kind
-KIND_VERSION=v0.23.0
+KIND_VERSION=v0.24.0
KIND_PATH=$(TOOLS_DIR)/kind-$(KIND_VERSION)
KIND_BIN=$(KIND_PATH)/kind
export PATH := $(BASE_DIR)/$(KIND_PATH):$(PATH)
diff --git a/scripts/kind-pod-resize.yaml b/scripts/kind-pod-resize.yaml
new file mode 100644
index 00000000..ae514fab
--- /dev/null
+++ b/scripts/kind-pod-resize.yaml
@@ -0,0 +1,25 @@
+#
+# 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.
+
+kind: Cluster
+apiVersion: kind.x-k8s.io/v1alpha4
+featureGates:
+ "InPlacePodVerticalScaling": true
+nodes:
+ - role: control-plane
+ - role: worker
+ - role: worker
diff --git a/scripts/run-e2e-tests.sh b/scripts/run-e2e-tests.sh
index a9ea909d..53dfc8da 100755
--- a/scripts/run-e2e-tests.sh
+++ b/scripts/run-e2e-tests.sh
@@ -23,9 +23,39 @@ KUBECTL_VERSION=$(make -s print_kubectl_version)
HELM=$TOOLS_DIRECTORY/helm-$HELM_VERSION/helm
KIND=$TOOLS_DIRECTORY/kind-$KIND_VERSION/kind
KUBECTL=$TOOLS_DIRECTORY/kubectl-$KUBECTL_VERSION/kubectl
+KIND_CONFIG=./scripts/kind.yaml
GO="${GO:-go}"
export GO
+# return 0 if arg1 <= arg2
+function verlte() {
+ if [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# return 0 if arg1 < arg2
+function verlt() {
+ if [ "$1" = "$2" ]; then
+ return 1
+ fi
+ verlte "$1" "$2"
+}
+
+function update_kind_config() {
+ # use a different kind config for different cluster versions
+ version=$(echo "$1" | sed 's/.*://' | sed 's/^v//')
+ if verlt "${version}" "1.27"; then
+ # 1.26 or earlier
+ KIND_CONFIG=./scripts/kind.yaml
+ else
+ # 1.27 or later; enable InPlacePodVerticalScaling feature flag
+ KIND_CONFIG=./scripts/kind-pod-resize.yaml
+ fi
+}
+
function check_cmd() {
CMD=$1
if ! command -v "${CMD}" &> /dev/null
@@ -164,13 +194,14 @@ Examples:
${NAME} -a test -n yk8s -v kindest/node:v1.24.17
${NAME} -a test -n yk8s -v kindest/node:v1.25.16
${NAME} -a test -n yk8s -v kindest/node:v1.26.15
- ${NAME} -a test -n yk8s -v kindest/node:v1.27.13
- ${NAME} -a test -n yk8s -v kindest/node:v1.28.9
- ${NAME} -a test -n yk8s -v kindest/node:v1.29.4
- ${NAME} -a test -n yk8s -v kindest/node:v1.30.0
+ ${NAME} -a test -n yk8s -v kindest/node:v1.27.16
+ ${NAME} -a test -n yk8s -v kindest/node:v1.28.13
+ ${NAME} -a test -n yk8s -v kindest/node:v1.29.8
+ ${NAME} -a test -n yk8s -v kindest/node:v1.30.4
+ ${NAME} -a test -n yk8s -v kindest/node:v1.31.0
Use a local helm chart path:
- ${NAME} -a test -n yk8s -v kindest/node:v1.30.0 -p
../yunikorn-release/helm-charts/yunikorn
+ ${NAME} -a test -n yk8s -v kindest/node:v1.31.0 -p
../yunikorn-release/helm-charts/yunikorn
EOF
}
@@ -181,7 +212,6 @@ eval "$(make arch)"
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
check_os
-KIND_CONFIG=./scripts/kind.yaml
CHART_PATH="./build/yunikorn-release/helm-charts/yunikorn"
GIT_CLONE=true
SCHEDULER_IMAGE="scheduler-${DOCKER_ARCH}-latest"
@@ -228,6 +258,8 @@ case ${key} in
esac
done
+update_kind_config "${CLUSTER_VERSION}"
+
echo "e2e test run details"
echo " action : ${ACTION}"
echo " kind cluster name : ${CLUSTER_NAME}"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]