Fix subcharts dependencies processing

Signed-off-by: Valentin Flaux <vflaux@oui.sncf>
pull/10174/head
Valentin Flaux 4 years ago
parent 9fafb4ad68
commit 437a08bcd9

@ -106,6 +106,15 @@ func getAliasDependency(charts []*chart.Chart, dep *chart.Dependency) *chart.Cha
md := *c.Metadata md := *c.Metadata
out.Metadata = &md out.Metadata = &md
if md.Dependencies != nil {
dependencies := make([]*chart.Dependency, len(md.Dependencies))
for i := range md.Dependencies {
d := *md.Dependencies[i]
dependencies[i] = &d
}
md.Dependencies = dependencies
}
if dep.Alias != "" { if dep.Alias != "" {
md.Name = dep.Alias md.Name = dep.Alias
} }

@ -312,15 +312,15 @@ func TestDependentChartAliases(t *testing.T) {
c := loadChart(t, "testdata/dependent-chart-alias") c := loadChart(t, "testdata/dependent-chart-alias")
req := c.Metadata.Dependencies req := c.Metadata.Dependencies
if len(c.Dependencies()) != 2 { if len(c.Dependencies()) != 3 {
t.Fatalf("expected 2 dependencies for this chart, but got %d", len(c.Dependencies())) t.Fatalf("expected 3 dependencies for this chart, but got %d", len(c.Dependencies()))
} }
if err := processDependencyEnabled(c, c.Values, ""); err != nil { if err := processDependencyEnabled(c, c.Values, ""); err != nil {
t.Fatalf("expected no errors but got %q", err) t.Fatalf("expected no errors but got %q", err)
} }
if len(c.Dependencies()) != 3 { if len(c.Dependencies()) != 5 {
t.Fatal("expected alias dependencies to be added") t.Fatal("expected alias dependencies to be added")
} }
@ -328,6 +328,20 @@ func TestDependentChartAliases(t *testing.T) {
t.Fatalf("expected number of chart dependencies %d, but got %d", len(c.Metadata.Dependencies), len(c.Dependencies())) t.Fatalf("expected number of chart dependencies %d, but got %d", len(c.Metadata.Dependencies), len(c.Dependencies()))
} }
for _, dep := range c.Dependencies() {
if len(dep.Metadata.Dependencies) == 0 {
continue
}
if len(dep.Dependencies()) != len(dep.Metadata.Dependencies) {
t.Fatalf("subchart %s: expected number of dependencies %d, but got %d", dep.Name(), len(dep.Metadata.Dependencies), len(dep.Dependencies()))
}
for i := range dep.Dependencies() {
if dep.Metadata.Dependencies[i].Name != dep.Dependencies()[i].Name() {
t.Fatalf("subchart %s: expected name %s, but got %s", dep.Name(), dep.Metadata.Dependencies[i].Name, dep.Dependencies()[i].Name())
}
}
}
aliasChart := getAliasDependency(c.Dependencies(), req[2]) aliasChart := getAliasDependency(c.Dependencies(), req[2])
if aliasChart == nil { if aliasChart == nil {

@ -27,3 +27,11 @@ dependencies:
version: "4.3.2" version: "4.3.2"
repository: https://example.com/charts repository: https://example.com/charts
alias: mariners1 alias: mariners1
- name: gizmo
version: "0.1.0"
repository: https://example.com/charts
alias: gizmo1
- name: gizmo
version: "0.1.0"
repository: https://example.com/charts
alias: gizmo2

@ -0,0 +1,12 @@
apiVersion: v1
name: gizmo
description: Deploy a basic Alpine Linux pod
version: 0.1.0
home: https://helm.sh/helm
dependencies:
- name: frobule
version: 0.1.0
alias: frobozz1
- name: frobule
version: 0.1.0
alias: frobozz2

@ -0,0 +1,5 @@
apiVersion: v1
name: frobule
description: Deploy a basic Alpine Linux pod
version: 0.1.0
home: https://helm.sh/helm
Loading…
Cancel
Save