From 8f833fed258098a8eec0287ff15ccabe6cf1080e Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Tue, 15 Oct 2019 22:39:12 -0700 Subject: [PATCH 1/2] Fix the ordering of the APIVersion check to avoid nil pointer Signed-off-by: Sidharth Surana --- pkg/chart/loader/load.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/chart/loader/load.go b/pkg/chart/loader/load.go index 04105f9ac..f04c0e9b3 100644 --- a/pkg/chart/loader/load.go +++ b/pkg/chart/loader/load.go @@ -104,12 +104,12 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) { // Deprecated: requirements.yaml is deprecated use Chart.yaml. // We will handle it for you because we are nice people case f.Name == "requirements.yaml": - if c.Metadata.APIVersion != chart.APIVersionV1 { - log.Printf("Warning: Dependencies are handled in Chart.yaml since apiVersion \"v2\". We recommend migrating dependencies to Chart.yaml.") - } if c.Metadata == nil { c.Metadata = new(chart.Metadata) } + if c.Metadata.APIVersion != chart.APIVersionV1 { + log.Printf("Warning: Dependencies are handled in Chart.yaml since apiVersion \"v2\". We recommend migrating dependencies to Chart.yaml.") + } if err := yaml.Unmarshal(f.Data, c.Metadata); err != nil { return c, errors.Wrap(err, "cannot load requirements.yaml") } From 31d41d3fd1d8d3665f5af05744a671f6eb21f54a Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Wed, 16 Oct 2019 11:33:18 -0700 Subject: [PATCH 2/2] Add unit test for this specific case of loading from V1 archive Added a tgz "frobnitz.v1.tgz" of the testdata folder frobnitz.v1 Verified that without the fix the unit test fails and re-produces the issue. Signed-off-by: Sidharth Surana --- pkg/chart/loader/load_test.go | 13 +++++++++++++ pkg/chart/loader/testdata/frobnitz.v1.tgz | Bin 0 -> 3525 bytes 2 files changed, 13 insertions(+) create mode 100644 pkg/chart/loader/testdata/frobnitz.v1.tgz diff --git a/pkg/chart/loader/load_test.go b/pkg/chart/loader/load_test.go index e36fd96a8..ea5a35560 100644 --- a/pkg/chart/loader/load_test.go +++ b/pkg/chart/loader/load_test.go @@ -58,6 +58,19 @@ func TestLoadV1(t *testing.T) { verifyDependenciesLock(t, c) } +func TestLoadFileV1(t *testing.T) { + l, err := Loader("testdata/frobnitz.v1.tgz") + if err != nil { + t.Fatalf("Failed to load testdata: %s", err) + } + c, err := l.Load() + if err != nil { + t.Fatalf("Failed to load testdata: %s", err) + } + verifyDependencies(t, c) + verifyDependenciesLock(t, c) +} + func TestLoadFile(t *testing.T) { l, err := Loader("testdata/frobnitz-1.2.3.tgz") if err != nil { diff --git a/pkg/chart/loader/testdata/frobnitz.v1.tgz b/pkg/chart/loader/testdata/frobnitz.v1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6282f9b73fb2877b76328adeaccdc8d94b1097c2 GIT binary patch literal 3525 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 literal 0 HcmV?d00001