diff --git a/cmd/helm/install_test.go b/cmd/helm/install_test.go index 6892fcd86..8b02b567b 100644 --- a/cmd/helm/install_test.go +++ b/cmd/helm/install_test.go @@ -201,6 +201,11 @@ func TestInstall(t *testing.T) { name: "install chart with only crds", cmd: "install crd-test testdata/testcharts/chart-with-only-crds --namespace default", }, + // Install with subchart from chartcenter + { + name: "install with subchart from chartcenter", + cmd: "install chartcenter testdata/testcharts/chartcenter --namespace default", + }, } runTestActionCmd(t, tests) diff --git a/cmd/helm/testdata/testcharts/chartcenter/Chart.yaml b/cmd/helm/testdata/testcharts/chartcenter/Chart.yaml new file mode 100644 index 000000000..15f308cd1 --- /dev/null +++ b/cmd/helm/testdata/testcharts/chartcenter/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +description: A Helm chart for Kubernetes +name: chartcenter +version: 0.1.0 +dependencies: + - name: stable/mariadb + version: 4.x.x + repository: "https://repo.chartcenter.io" diff --git a/cmd/helm/testdata/testcharts/chartcenter/charts/mariadb-4.3.1.tgz b/cmd/helm/testdata/testcharts/chartcenter/charts/mariadb-4.3.1.tgz new file mode 100644 index 000000000..5b38fa1c3 Binary files /dev/null and b/cmd/helm/testdata/testcharts/chartcenter/charts/mariadb-4.3.1.tgz differ diff --git a/pkg/action/install.go b/pkg/action/install.go index caeefca68..7a6ac5adb 100644 --- a/pkg/action/install.go +++ b/pkg/action/install.go @@ -594,8 +594,12 @@ func CheckDependencies(ch *chart.Chart, reqs []*chart.Dependency) error { OUTER: for _, r := range reqs { + req := r.Name + if idx := strings.LastIndex(req, "/"); idx >= 0 { + req = req[idx+1:] + } for _, d := range ch.Dependencies() { - if d.Name() == r.Name { + if d.Name() == req { continue OUTER } }