diff --git a/pkg/chart/metadata.go b/pkg/chart/metadata.go index a08a97cd1..894f4b1bd 100644 --- a/pkg/chart/metadata.go +++ b/pkg/chart/metadata.go @@ -112,7 +112,7 @@ func (md *Metadata) Validate() error { return ValidationError("chart.metadata.name is required") } - if md.Name != filepath.Base(md.Name) { + if !filepath.IsLocal(md.Name) { return ValidationErrorf("chart.metadata.name %q is invalid", md.Name) } diff --git a/pkg/chart/metadata_test.go b/pkg/chart/metadata_test.go index 62aea7261..e36180f3c 100644 --- a/pkg/chart/metadata_test.go +++ b/pkg/chart/metadata_test.go @@ -45,6 +45,11 @@ func TestValidate(t *testing.T) { &Metadata{Name: "../../test", APIVersion: "v2", Version: "1.0"}, ValidationError("chart.metadata.name \"../../test\" is invalid"), }, + { + "chart without name (namespace)", + &Metadata{Name: "../../namespace/test", APIVersion: "v2", Version: "1.0"}, + ValidationError("chart.metadata.name \"../../namespace/test\" is invalid"), + }, { "chart without version", &Metadata{Name: "test", APIVersion: "v2"}, @@ -177,6 +182,11 @@ func TestValidate(t *testing.T) { &Metadata{APIVersion: "v2", Name: "test", Version: "1.2.3.4"}, ValidationError("chart.metadata.version \"1.2.3.4\" is invalid"), }, + { + "namespaced chart", + &Metadata{Name: "namespace/test", APIVersion: "v2", Version: "1.0", Type: "application"}, + nil, + }, } for _, tt := range tests {