mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 10:20:51 +00:00
Allows manual restart of dbus to work in Ubuntu.
This commit is contained in:
parent
f4e7828674
commit
3daef0a534
@ -21,6 +21,8 @@ package e2enode
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -180,8 +182,16 @@ var _ = SIGDescribe("GracefulNodeShutdown [Serial] [NodeAlphaFeature:GracefulNod
|
|||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.It("after restart dbus, should be able to gracefully shutdown", func() {
|
ginkgo.It("after restart dbus, should be able to gracefully shutdown", func() {
|
||||||
|
// allows manual restart of dbus to work in Ubuntu.
|
||||||
|
err := overlayDbusConfig()
|
||||||
|
framework.ExpectNoError(err)
|
||||||
|
defer func() {
|
||||||
|
err := restoreDbusConfig()
|
||||||
|
framework.ExpectNoError(err)
|
||||||
|
}()
|
||||||
|
|
||||||
ginkgo.By("Restart Dbus")
|
ginkgo.By("Restart Dbus")
|
||||||
err := restartDbus()
|
err = restartDbus()
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
ginkgo.By("Emitting Shutdown signal")
|
ginkgo.By("Emitting Shutdown signal")
|
||||||
@ -261,3 +271,41 @@ func restartDbus() error {
|
|||||||
_, err := runCommand("sh", "-c", cmd)
|
_, err := runCommand("sh", "-c", cmd)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func systemctlDaemonReload() error {
|
||||||
|
cmd := "systemctl daemon-reload"
|
||||||
|
_, err := runCommand("sh", "-c", cmd)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
dbusConfPath = "/etc/systemd/system/dbus.service.d/k8s-graceful-node-shutdown-e2e.conf"
|
||||||
|
dbusConf = `
|
||||||
|
[Unit]
|
||||||
|
RefuseManualStart=no
|
||||||
|
RefuseManualStop=no
|
||||||
|
[Service]
|
||||||
|
KillMode=control-group
|
||||||
|
ExecStop=
|
||||||
|
`
|
||||||
|
)
|
||||||
|
|
||||||
|
func overlayDbusConfig() error {
|
||||||
|
err := os.MkdirAll(filepath.Dir(dbusConf), 0755)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = os.WriteFile(dbusConfPath, []byte(dbusConf), 0644)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return systemctlDaemonReload()
|
||||||
|
}
|
||||||
|
|
||||||
|
func restoreDbusConfig() error {
|
||||||
|
err := os.Remove(dbusConf)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return systemctlDaemonReload()
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user