diff --git a/pkg/chartutil/dependencies_test.go b/pkg/chartutil/dependencies_test.go index f016e6bcb..4f9dc0a8d 100644 --- a/pkg/chartutil/dependencies_test.go +++ b/pkg/chartutil/dependencies_test.go @@ -542,3 +542,49 @@ func TestDependencyWithSameNameDifferentVersion(t *testing.T) { }) } } + +func TestDependencyWithDifferentAliasNameSameVersion(t *testing.T) { + type M = map[string]interface{} + tests := []struct { + name string + v M + charts []string // expected dependent charts names + versions []string // expected dependent charts versions + }{ + { + "Different Alias name subcharts enbale one", + M{"one": M{"enabled": true}, "two": M{"enabled": false}}, + []string{"parent-chart.test1"}, + []string{"0.1.0"}, + }, + { + "Different Alias name subcharts enbale another one", + M{"one": M{"enabled": false}, "two": M{"enabled": true}}, + []string{"parent-chart.test2"}, + []string{"0.1.0"}, + }, + { + "Different Alias name subcharts enbale all", + M{"one": M{"enabled": true}, "two": M{"enabled": true}}, + []string{"parent-chart.test1", "parent-chart.test2"}, + []string{"0.1.0", "0.1.0"}, + }, + } + + for _, tc := range tests { + c := loadChart(t, "testdata/dependent-chart-with-different-alias-name-same-version") + t.Run(tc.name, func(t *testing.T) { + if err := processDependencyEnabled(c, tc.v, ""); err != nil { + t.Fatalf("error processing enabled dependencies %v", err) + } + if len(c.Dependencies()) != len(tc.charts) { + t.Fatalf("slice lengths do not match got %v, expected %v", len(c.Dependencies()), len(tc.charts)) + } + for i, d := range c.Dependencies() { + if d.Metadata.Version != tc.versions[i] { + t.Fatalf("slice values do not match got %v, expected %v", tc.versions[i], d.Metadata.Version) + } + } + }) + } +} diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock new file mode 100644 index 000000000..b2f17fb39 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: dev + repository: file://envs/dev + version: v0.1.0 +- name: prod + repository: file://envs/prod + version: v0.1.0 +digest: sha256:9403fc24f6cf9d6055820126cf7633b4bd1fed3c77e4880c674059f536346182 +generated: "2020-02-03T10:38:51.180474+01:00" diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml new file mode 100644 index 000000000..d98d7ebe6 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml @@ -0,0 +1,14 @@ +apiVersion: v2 +name: parent-chart +version: 0.1.0 +appVersion: v0.1.0 +dependencies: + - name: test + alias: test1 + version: "0.1.0" + condition: one.enabled + + - name: test + alias: test2 + version: "0.1.0" + condition: two.enabled \ No newline at end of file diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz new file mode 100644 index 000000000..33390b31b Binary files /dev/null and b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz differ diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml new file mode 100644 index 000000000..976e5a8f1 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml @@ -0,0 +1,16 @@ +################################################################################################### +# parent-chart horizontal pod autoscaler +################################################################################################### +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-autoscaler + namespace: {{ .Release.Namespace }} +spec: + scaleTargetRef: + apiVersion: apps/v1beta1 + kind: Deployment + name: {{ .Release.Name }} + minReplicas: {{ required "A valid .Values.resources.autoscaler.minReplicas entry required!" .Values.resources.autoscaler.minReplicas }} + maxReplicas: {{ required "A valid .Values.resources.autoscaler.maxReplicas entry required!" .Values.resources.autoscaler.maxReplicas }} + targetCPUUtilizationPercentage: {{ required "A valid .Values.resources.autoscaler.targetCPUUtilizationPercentage!" .Values.resources.autoscaler.targetCPUUtilizationPercentage }} \ No newline at end of file diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml new file mode 100644 index 000000000..3424c6547 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml @@ -0,0 +1,11 @@ +# Default values for parent-chart. +nameOverride: parent-chart +one: + enabled: false +two: + enabled: true +resources: + autoscaler: + minReplicas: 0 + maxReplicas: 0 + targetCPUUtilizationPercentage: 99 \ No newline at end of file diff --git a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz index 6ee51c1c7..33390b31b 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz differ diff --git a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz index 0309b9533..347032915 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz and b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz differ