From 7c349c98f66a95aca6e5ca1b4a8886fea2a2879d Mon Sep 17 00:00:00 2001 From: Tom Wieczorek Date: Mon, 18 Sep 2023 08:30:08 +0200 Subject: [PATCH] Change kubelet args passed in CLI inttest The randomly selected kubelet arguments used in the CLI inttest lead to kubelet crash-looping on 6.x kernels (observed on 6.1 and 6.2), whereas they worked just fine on 5.15 kernels. Since GitHub updated the kernels of its Ubuntu managed GitHub action runners from 5.15 to 6.2 a few days ago, the CLI test started to fail constantly. Select some other flags that won't induce a crash-loop for the test. Also make a slight improvement to the command line assertion: Check for whole args instead of substrings, and use the right testing.T pointer to report failures on. Signed-off-by: Tom Wieczorek (cherry picked from commit f22108f2a44e171d3516d10bbd1b1bf862248cf3) --- inttest/cli/cli_test.go | 8 ++++---- inttest/common/footloosesuite.go | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/inttest/cli/cli_test.go b/inttest/cli/cli_test.go index 102179241418..64c151239257 100644 --- a/inttest/cli/cli_test.go +++ b/inttest/cli/cli_test.go @@ -73,7 +73,7 @@ func (s *CliSuite) TestK0sCliKubectlAndResetCommand() { s.T().Run("k0sInstall", func(t *testing.T) { // Install with some arbitrary kubelet flags so we see those get properly passed to the kubelet - out, err := ssh.ExecWithOutput(s.Context(), "/usr/local/bin/k0s install controller --enable-worker --disable-components konnectivity-server,metrics-server --kubelet-extra-args='--event-qps=7 --enable-load-reader=true'") + out, err := ssh.ExecWithOutput(s.Context(), "/usr/local/bin/k0s install controller --enable-worker --disable-components konnectivity-server,metrics-server --kubelet-extra-args='--housekeeping-interval=10s --log-flush-frequency=5s'") assert.NoError(t, err) assert.Equal(t, "", out) }) @@ -114,9 +114,9 @@ func (s *CliSuite) TestK0sCliKubectlAndResetCommand() { // Check that the kubelet extra flags are properly set kubeletCmdLine, err := s.GetKubeletCMDLine(s.ControllerNode(0)) - s.Require().NoError(err) - s.Require().Contains(kubeletCmdLine, "--event-qps=7") - s.Require().Contains(kubeletCmdLine, "--enable-load-reader=true") + require.NoError(err) + assert.Contains(kubeletCmdLine, "--housekeeping-interval=10s") + assert.Contains(kubeletCmdLine, "--log-flush-frequency=5s") }) s.T().Log("waiting for k0s to terminate") diff --git a/inttest/common/footloosesuite.go b/inttest/common/footloosesuite.go index fe1e6b00ab1e..8e893fc4ecd7 100644 --- a/inttest/common/footloosesuite.go +++ b/inttest/common/footloosesuite.go @@ -1062,19 +1062,19 @@ func (s *FootlooseSuite) initializeFootlooseCluster() error { } // Verifies that kubelet process has the address flag set -func (s *FootlooseSuite) GetKubeletCMDLine(node string) (string, error) { +func (s *FootlooseSuite) GetKubeletCMDLine(node string) ([]string, error) { ssh, err := s.SSH(s.Context(), node) if err != nil { - return "", err + return nil, err } defer ssh.Disconnect() output, err := ssh.ExecWithOutput(s.Context(), `cat /proc/$(pidof kubelet)/cmdline`) if err != nil { - return "", err + return nil, err } - return output, nil + return strings.Split(output, "\x00"), nil } func (s *FootlooseSuite) initializeFootlooseClusterInDir(dir string) error {