From 4c3120d1dfa667b09be66ea1df24e47ea533d3ac Mon Sep 17 00:00:00 2001 From: diyliv Date: Wed, 8 Jul 2026 11:48:06 +0300 Subject: [PATCH] collect mount files Signed-off-by: diyliv --- pkg/linters/container/rules/mount_points.go | 7 ++++- .../container/rules/mount_points_test.go | 26 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/pkg/linters/container/rules/mount_points.go b/pkg/linters/container/rules/mount_points.go index 2639a4a1..467445ca 100644 --- a/pkg/linters/container/rules/mount_points.go +++ b/pkg/linters/container/rules/mount_points.go @@ -35,7 +35,8 @@ const ( ) type mountPointsFile struct { - Dirs []string `yaml:"dirs"` + Dirs []string `yaml:"dirs"` + Files []string `yaml:"files"` } func NewMountPointsRule(excludeRules []pkg.StringRuleExclude, modulePath string) *MountPointsRule { @@ -133,6 +134,10 @@ func collectMountPointsDirs(modulePath string) map[string]bool { dirs[strings.TrimRight(dir, "/")] = true } + for _, file := range mpf.Files { + dirs[strings.TrimRight(file, "/")] = true + } + return nil }) diff --git a/pkg/linters/container/rules/mount_points_test.go b/pkg/linters/container/rules/mount_points_test.go index 868d8b59..9bff7413 100644 --- a/pkg/linters/container/rules/mount_points_test.go +++ b/pkg/linters/container/rules/mount_points_test.go @@ -227,6 +227,32 @@ func TestMountPointsContainerRule_TrailingSlash(t *testing.T) { assert.Len(t, errorList.GetErrors(), 0) } +func TestMountPointsContainerRule_FilesDeclared(t *testing.T) { + tmpDir, err := os.MkdirTemp("", "mpcr-test") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(tmpDir) + + writeMountPointsFile(t, tmpDir, `dirs: + - /etc/app +files: + - /etc/app/config.yaml + - /var/run/app.sock +`) + + obj := objectWithMounts("Deployment", "app", "/etc/app", "/etc/app/config.yaml", "/var/run/app.sock") + + containers, err := obj.GetAllContainers() + assert.NoError(t, err) + + errorList := errors.NewLintRuleErrorsList() + rule := NewMountPointsRule(nil, tmpDir) + rule.CheckMountPaths(obj, containers, errorList) + + assert.Len(t, errorList.GetErrors(), 0) +} + func TestMountPointsContainerRule_DaemonSetAndStatefulSet(t *testing.T) { tmpDir, err := os.MkdirTemp("", "mpcr-test") if err != nil {