From d62f35e8159f3b3dfc014f0cb66b2c6b4b451fca Mon Sep 17 00:00:00 2001 From: nikpivkin Date: Wed, 23 Oct 2024 21:07:24 +0600 Subject: [PATCH 1/2] fix(helm): properly handle multiple archived dependencies Signed-off-by: nikpivkin --- pkg/iac/scanners/helm/parser/parser.go | 43 +++++++++++------- pkg/iac/scanners/helm/parser/parser_test.go | 15 ++++++ .../multiple-archived-deps/Chart.yaml | 14 ++++++ .../charts/common-2.26.0.tgz | Bin 0 -> 15573 bytes .../opentelemetry-collector-0.108.0.tgz | Bin 0 -> 34993 bytes 5 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/Chart.yaml create mode 100644 pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/charts/common-2.26.0.tgz create mode 100644 pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/charts/opentelemetry-collector-0.108.0.tgz diff --git a/pkg/iac/scanners/helm/parser/parser.go b/pkg/iac/scanners/helm/parser/parser.go index e38f032b6221..cbb73780c0ef 100644 --- a/pkg/iac/scanners/helm/parser/parser.go +++ b/pkg/iac/scanners/helm/parser/parser.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "io/fs" + "path" "path/filepath" "regexp" "sort" @@ -46,7 +47,7 @@ type ChartFile struct { ManifestContent string } -func New(path string, opts ...Option) (*Parser, error) { +func New(src string, opts ...Option) (*Parser, error) { client := action.NewInstall(&action.Configuration{}) client.DryRun = true // don't do anything @@ -55,7 +56,7 @@ func New(path string, opts ...Option) (*Parser, error) { p := &Parser{ helmClient: client, - ChartSource: path, + ChartSource: src, logger: log.WithPrefix("helm parser"), } @@ -79,10 +80,10 @@ func New(path string, opts ...Option) (*Parser, error) { return p, nil } -func (p *Parser) ParseFS(ctx context.Context, target fs.FS, path string) error { - p.workingFS = target +func (p *Parser) ParseFS(ctx context.Context, fsys fs.FS, target string) error { + p.workingFS = fsys - if err := fs.WalkDir(p.workingFS, filepath.ToSlash(path), func(path string, entry fs.DirEntry, err error) error { + if err := fs.WalkDir(p.workingFS, filepath.ToSlash(target), func(filePath string, entry fs.DirEntry, err error) error { select { case <-ctx.Done(): return ctx.Err() @@ -95,16 +96,16 @@ func (p *Parser) ParseFS(ctx context.Context, target fs.FS, path string) error { return nil } - if detection.IsArchive(path) { - tarFS, err := p.addTarToFS(path) + if detection.IsArchive(filePath) && !isDependencyChartArchive(p.workingFS, filePath) { + tarFS, err := p.addTarToFS(filePath) if errors.Is(err, errSkipFS) { // an unpacked Chart already exists return nil } else if err != nil { - return fmt.Errorf("failed to add tar %q to FS: %w", path, err) + return fmt.Errorf("failed to add tar %q to FS: %w", filePath, err) } - targetPath := filepath.Dir(path) + targetPath := filepath.Dir(filePath) if targetPath == "" { targetPath = "." } @@ -114,7 +115,7 @@ func (p *Parser) ParseFS(ctx context.Context, target fs.FS, path string) error { } return nil } else { - return p.addPaths(path) + return p.addPaths(filePath) } }); err != nil { return fmt.Errorf("walk dir error: %w", err) @@ -123,19 +124,29 @@ func (p *Parser) ParseFS(ctx context.Context, target fs.FS, path string) error { return nil } +func isDependencyChartArchive(fsys fs.FS, archivePath string) bool { + parent := path.Dir(archivePath) + if !strings.HasSuffix(parent, "charts") { + return false + } + + _, err := fs.Stat(fsys, path.Join(parent, "..", "Chart.yaml")) + return err == nil +} + func (p *Parser) addPaths(paths ...string) error { - for _, path := range paths { - if _, err := fs.Stat(p.workingFS, path); err != nil { + for _, filePath := range paths { + if _, err := fs.Stat(p.workingFS, filePath); err != nil { return err } - if strings.HasSuffix(path, "Chart.yaml") && p.rootPath == "" { - if err := p.extractChartName(path); err != nil { + if strings.HasSuffix(filePath, "Chart.yaml") && p.rootPath == "" { + if err := p.extractChartName(filePath); err != nil { return err } - p.rootPath = filepath.Dir(path) + p.rootPath = filepath.Dir(filePath) } - p.filepaths = append(p.filepaths, path) + p.filepaths = append(p.filepaths, filePath) } return nil } diff --git a/pkg/iac/scanners/helm/parser/parser_test.go b/pkg/iac/scanners/helm/parser/parser_test.go index 9c8b05ce7696..16a422d78532 100644 --- a/pkg/iac/scanners/helm/parser/parser_test.go +++ b/pkg/iac/scanners/helm/parser/parser_test.go @@ -48,4 +48,19 @@ func TestParseFS(t *testing.T) { } assert.Equal(t, expectedFiles, p.filepaths) }) + + t.Run("chart with multiple archived deps", func(t *testing.T) { + p, err := New(".") + require.NoError(t, err) + + fsys := os.DirFS(filepath.Join("testdata", "multiple-archived-deps")) + require.NoError(t, p.ParseFS(context.TODO(), fsys, ".")) + + expectedFiles := []string{ + "Chart.yaml", + "charts/common-2.26.0.tgz", + "charts/opentelemetry-collector-0.108.0.tgz", + } + assert.Equal(t, expectedFiles, p.filepaths) + }) } diff --git a/pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/Chart.yaml b/pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/Chart.yaml new file mode 100644 index 000000000000..82d6c918088f --- /dev/null +++ b/pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/Chart.yaml @@ -0,0 +1,14 @@ +apiVersion: v2 +appVersion: "1.1" +description: Test Chart +name: y-chart +version: 1.0.0 +kubeVersion: ">=1.21" + +dependencies: + - name: common + repository: https://charts.bitnami.com/bitnami + version: 2.26.0 + - name: opentelemetry-collector + version: 0.108.0 + repository: https://open-telemetry.github.io/opentelemetry-helm-charts \ No newline at end of file diff --git a/pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/charts/common-2.26.0.tgz b/pkg/iac/scanners/helm/parser/testdata/multiple-archived-deps/charts/common-2.26.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..43f85ba36a9160d8ee712e11c22de7732a8f53db GIT binary patch literal 15573 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 X(}Twu8&x6#fdIf*neT%*tcmy!-ZISW literal 0 HcmV?d00001 From f1053773a241e28055faa655c7235f611e14a0c8 Mon Sep 17 00:00:00 2001 From: nikpivkin Date: Mon, 28 Oct 2024 18:37:26 +0600 Subject: [PATCH 2/2] handle non-deps archives Signed-off-by: nikpivkin --- pkg/iac/scanners/helm/parser/parser.go | 6 +++++- pkg/iac/scanners/helm/parser/parser_test.go | 15 +++++++++++++++ .../testdata/non-deps-archives/Chart.yaml | 14 ++++++++++++++ .../backup_charts/mysql-operator-2.2.2.tgz | Bin 0 -> 11892 bytes .../backup_charts/wordpress-operator-0.12.4.tgz | Bin 0 -> 38731 bytes 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 pkg/iac/scanners/helm/parser/testdata/non-deps-archives/Chart.yaml create mode 100644 pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/mysql-operator-2.2.2.tgz create mode 100644 pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/wordpress-operator-0.12.4.tgz diff --git a/pkg/iac/scanners/helm/parser/parser.go b/pkg/iac/scanners/helm/parser/parser.go index cbb73780c0ef..1a132fdc2f76 100644 --- a/pkg/iac/scanners/helm/parser/parser.go +++ b/pkg/iac/scanners/helm/parser/parser.go @@ -96,6 +96,10 @@ func (p *Parser) ParseFS(ctx context.Context, fsys fs.FS, target string) error { return nil } + if _, err := fs.Stat(p.workingFS, filePath); err != nil { + return nil + } + if detection.IsArchive(filePath) && !isDependencyChartArchive(p.workingFS, filePath) { tarFS, err := p.addTarToFS(filePath) if errors.Is(err, errSkipFS) { @@ -126,7 +130,7 @@ func (p *Parser) ParseFS(ctx context.Context, fsys fs.FS, target string) error { func isDependencyChartArchive(fsys fs.FS, archivePath string) bool { parent := path.Dir(archivePath) - if !strings.HasSuffix(parent, "charts") { + if path.Base(parent) != "charts" { return false } diff --git a/pkg/iac/scanners/helm/parser/parser_test.go b/pkg/iac/scanners/helm/parser/parser_test.go index 16a422d78532..01aa697d559c 100644 --- a/pkg/iac/scanners/helm/parser/parser_test.go +++ b/pkg/iac/scanners/helm/parser/parser_test.go @@ -63,4 +63,19 @@ func TestParseFS(t *testing.T) { } assert.Equal(t, expectedFiles, p.filepaths) }) + + t.Run("archives are not dependencies", func(t *testing.T) { + p, err := New(".") + require.NoError(t, err) + + fsys := os.DirFS(filepath.Join("testdata", "non-deps-archives")) + require.NoError(t, p.ParseFS(context.TODO(), fsys, ".")) + + expectedFiles := []string{ + "Chart.yaml", + "backup_charts/wordpress-operator/Chart.yaml", + "backup_charts/mysql-operator/Chart.yaml", + } + assert.Subset(t, p.filepaths, expectedFiles) + }) } diff --git a/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/Chart.yaml b/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/Chart.yaml new file mode 100644 index 000000000000..65225b732935 --- /dev/null +++ b/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/Chart.yaml @@ -0,0 +1,14 @@ +apiVersion: v2 +appVersion: "1.1" +description: Test Chart +name: y-chart +version: 1.0.0 +kubeVersion: ">=1.21" + +dependencies: + - name: mysql-operator + repository: https://mysql.github.io/mysql-operator/ + version: 2.2.2 + - name: wordpress-operator + version: 0.12.4 + repository: https://helm-charts.bitpoke.io \ No newline at end of file diff --git a/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/mysql-operator-2.2.2.tgz b/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/mysql-operator-2.2.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b80fc3c0425e174020f5829338d436dceda8b322 GIT binary patch literal 11892 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 literal 0 HcmV?d00001 diff --git a/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/wordpress-operator-0.12.4.tgz b/pkg/iac/scanners/helm/parser/testdata/non-deps-archives/backup_charts/wordpress-operator-0.12.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4086e9f1a6bab460c3517d28d39566d0226371d2 GIT binary patch literal 38731 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 literal 0 HcmV?d00001