From 6585719baf0ca0b6257f7641d222d641532e5993 Mon Sep 17 00:00:00 2001 From: Michal Pryc Date: Mon, 10 Mar 2025 17:51:33 +0100 Subject: [PATCH] issue 8649: host_pods should not be mandatory to node-agent Signed-off-by: Michal Pryc --- pkg/cmd/cli/nodeagent/server.go | 14 +++++++++++--- pkg/cmd/cli/nodeagent/server_test.go | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/cmd/cli/nodeagent/server.go b/pkg/cmd/cli/nodeagent/server.go index 22b3974ed6..20ef16389d 100644 --- a/pkg/cmd/cli/nodeagent/server.go +++ b/pkg/cmd/cli/nodeagent/server.go @@ -80,6 +80,8 @@ const ( // files will be written to defaultCredentialsDirectory = "/tmp/credentials" + defaultHostPodsPath = "/host_pods" + defaultResourceTimeout = 10 * time.Minute defaultDataMoverPrepareTimeout = 30 * time.Minute defaultDataPathConcurrentNum = 1 @@ -247,7 +249,13 @@ func newNodeAgentServer(logger logrus.FieldLogger, factory client.Factory, confi if err != nil { return nil, err } - if err := s.validatePodVolumesHostPath(s.kubeClient); err != nil { + + exists, err := s.fileSystem.DirExists(defaultHostPodsPath) + if err != nil { + return nil, err + } + + if exists && s.validatePodVolumesHostPath(s.kubeClient) != nil { return nil, err } @@ -414,7 +422,7 @@ func (s *nodeAgentServer) waitCacheForResume() error { // validatePodVolumesHostPath validates that the pod volumes path contains a // directory for each Pod running on this node func (s *nodeAgentServer) validatePodVolumesHostPath(client kubernetes.Interface) error { - files, err := s.fileSystem.ReadDir("/host_pods/") + files, err := s.fileSystem.ReadDir(defaultHostPodsPath) if err != nil { return errors.Wrap(err, "could not read pod volumes host path") } @@ -446,7 +454,7 @@ func (s *nodeAgentServer) validatePodVolumesHostPath(client kubernetes.Interface valid = false s.logger.WithFields(logrus.Fields{ "pod": fmt.Sprintf("%s/%s", pod.GetNamespace(), pod.GetName()), - "path": "/host_pods/" + dirName, + "path": defaultHostPodsPath + "/" + dirName, }).Debug("could not find volumes for pod in host path") } } diff --git a/pkg/cmd/cli/nodeagent/server_test.go b/pkg/cmd/cli/nodeagent/server_test.go index bf3e203ca2..6b0f810a8a 100644 --- a/pkg/cmd/cli/nodeagent/server_test.go +++ b/pkg/cmd/cli/nodeagent/server_test.go @@ -84,7 +84,7 @@ func Test_validatePodVolumesHostPath(t *testing.T) { fs := testutil.NewFakeFileSystem() for _, dir := range tt.dirs { - err := fs.MkdirAll(filepath.Join("/host_pods/", dir), os.ModePerm) + err := fs.MkdirAll(filepath.Join(defaultHostPodsPath, dir), os.ModePerm) if err != nil { t.Error(err) }