Merge pull request #119158 from dims/skip-GracefulNodeShutdown-tests-on-older-systemd-versions

Skip GracefulNodeShutdown on older systemd versions
This commit is contained in:
Kubernetes Prow Robot 2023-07-07 14:13:04 -07:00 committed by GitHub
commit 16e3980c08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,7 +23,10 @@ import (
"context"
"fmt"
"os"
"os/exec"
"path/filepath"
"regexp"
"strconv"
"time"
apierrors "k8s.io/apimachinery/pkg/api/errors"
@ -40,6 +43,7 @@ import (
"k8s.io/kubernetes/pkg/apis/scheduling"
"k8s.io/kubernetes/test/e2e/framework"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
"github.com/godbus/dbus/v5"
v1 "k8s.io/api/core/v1"
@ -57,6 +61,28 @@ var _ = SIGDescribe("GracefulNodeShutdown [Serial] [NodeFeature:GracefulNodeShut
f := framework.NewDefaultFramework("graceful-node-shutdown")
f.NamespacePodSecurityLevel = admissionapi.LevelPrivileged
ginkgo.BeforeEach(func() {
if _, err := exec.LookPath("systemd-run"); err == nil {
if version, verr := exec.Command("systemd-run", "--version").Output(); verr == nil {
// sample output from $ systemd-run --version
// systemd 245 (245.4-4ubuntu3.13)
re := regexp.MustCompile(`systemd (\d+)`)
if match := re.FindSubmatch(version); len(match) > 1 {
systemdVersion, err := strconv.Atoi(string(match[1]))
if err != nil {
framework.Logf("failed to parse systemd version with error %v, 'systemd-run --version' output was [%s]", err, version)
} else {
// See comments in issue 107043, this is a known problem for a long time that this feature does not work on older systemd
// https://github.com/kubernetes/kubernetes/issues/107043#issuecomment-997546598
if systemdVersion < 245 {
e2eskipper.Skipf("skipping GracefulNodeShutdown tests as we are running on an old version of systemd : %d", systemdVersion)
}
}
}
}
}
})
ginkgo.Context("graceful node shutdown when PodDisruptionConditions are enabled [NodeFeature:PodDisruptionConditions]", func() {
const (