Fix bug with multi depth dependency aliases

Signed-off-by: Max North <maxwelldnorth@gmail.com>
pull/12276/head
Max North 2 years ago
parent b12139a6ec
commit ea0f7e5e79

@ -120,6 +120,13 @@ func getAliasDependency(charts []*chart.Chart, dep *chart.Dependency) *chart.Cha
md := *c.Metadata md := *c.Metadata
out.Metadata = &md out.Metadata = &md
deps := []*chart.Dependency{}
for _, d := range out.Metadata.Dependencies {
dc := *d
deps = append(deps, &dc)
}
out.Metadata.Dependencies = deps
if dep.Alias != "" { if dep.Alias != "" {
md.Name = dep.Alias md.Name = dep.Alias
} }

@ -502,3 +502,37 @@ func TestDependentChartsWithSomeSubchartsSpecifiedInDependency(t *testing.T) {
t.Fatalf("expected 1 dependency specified in Chart.yaml, got %d", len(c.Metadata.Dependencies)) t.Fatalf("expected 1 dependency specified in Chart.yaml, got %d", len(c.Metadata.Dependencies))
} }
} }
func TestMultiLevelDependentChartsWithMultipleAliases(t *testing.T) {
c1 := loadChart(t, "testdata/three-level-dependent-chart-multi-alias/chart1")
if err := processDependencyEnabled(c1, c1.Values, ""); err != nil {
t.Fatalf("expected no errors but got %q", err)
}
if len(c1.Dependencies()) != 2 {
t.Fatalf("expected 2 dependencies for chart1, but got %d", len(c1.Dependencies()))
}
c1DepA := c1.Dependencies()[0]
if c1DepA.Metadata.Name != "2a" {
t.Fatalf("expected chart1's first dependency name to be 2a, but got %s", c1DepA.Metadata.Name)
}
c1DepB := c1.Dependencies()[1]
if c1DepB.Metadata.Name != "2b" {
t.Fatalf("expected chart1's second dependency name to be 2b, but got %s", c1DepB.Metadata.Name)
}
for _, c2 := range c1.Dependencies() {
c2DepA := c2.Dependencies()[0]
if c2DepA.Metadata.Name != "3a" {
t.Fatalf("expected chart2's first dependency name to be 3a, but got %s", c2DepA.Metadata.Name)
}
c2DepB := c2.Dependencies()[1]
if c2DepB.Metadata.Name != "3b" {
t.Fatalf("expected chart2's second dependency name to be 3b, but got %s", c2DepB.Metadata.Name)
}
}
}

@ -0,0 +1,13 @@
apiVersion: v2
name: chart1
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
dependencies:
- name: chart2
version: 0.1.0
alias: 2a
- name: chart2
version: 0.1.0
alias: 2b

@ -0,0 +1,13 @@
apiVersion: v2
name: chart2
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
dependencies:
- name: chart3
version: 0.1.0
alias: 3a
- name: chart3
version: 0.1.0
alias: 3b

@ -0,0 +1,5 @@
apiVersion: v2
name: chart3
description: A Helm chart for Kubernetes
type: application
version: 0.1.0

@ -0,0 +1,5 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Chart.Name }}
data: {}
Loading…
Cancel
Save