From 16da0578afe83c92a32add76788e5f03ef4da834 Mon Sep 17 00:00:00 2001 From: Chao Date: Sat, 30 Oct 2021 23:20:59 +0800 Subject: [PATCH] Fix dependency condition on non-existent values Signed-off-by: Chao --- pkg/chartutil/dependencies.go | 2 ++ pkg/chartutil/dependencies_test.go | 4 ++++ pkg/chartutil/testdata/subpop/Chart.yaml | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/pkg/chartutil/dependencies.go b/pkg/chartutil/dependencies.go index d2e7d6dc9..1892b80d3 100644 --- a/pkg/chartutil/dependencies.go +++ b/pkg/chartutil/dependencies.go @@ -51,6 +51,8 @@ func processDependencyConditions(reqs []*chart.Dependency, cvals Values, cpath s } else if _, ok := err.(ErrNoValue); !ok { // this is a real error log.Printf("Warning: PathValue returned error %v", err) + } else { + r.Enabled = false } } } diff --git a/pkg/chartutil/dependencies_test.go b/pkg/chartutil/dependencies_test.go index bcb1d40e5..c94bd2f2c 100644 --- a/pkg/chartutil/dependencies_test.go +++ b/pkg/chartutil/dependencies_test.go @@ -111,6 +111,10 @@ func TestDependencyEnabled(t *testing.T) { "subcharts with alias also respect conditions", M{"subchart1": M{"enabled": false}, "subchart2alias": M{"enabled": true, "subchartb": M{"enabled": true}}}, []string{"parentchart", "parentchart.subchart2alias", "parentchart.subchart2alias.subchartb"}, + }, { + "subcharts with alias also respect conditions on a non-existent value", + M{"subchart1": M{"enabled": false}, "subchart2alias2": M{}}, + []string{"parentchart"}, }} for _, tc := range tests { diff --git a/pkg/chartutil/testdata/subpop/Chart.yaml b/pkg/chartutil/testdata/subpop/Chart.yaml index 27118672a..d5cb8d641 100644 --- a/pkg/chartutil/testdata/subpop/Chart.yaml +++ b/pkg/chartutil/testdata/subpop/Chart.yaml @@ -39,3 +39,9 @@ dependencies: repository: http://localhost:10191 version: 0.1.0 condition: subchart2alias.enabled + + - name: subchart2 + alias: subchart2alias2 + repository: http://localhost:10191 + version: 0.1.0 + condition: subchart2alias2.nonexistent.enabled