From 695951cb9edc0d40bf8a6c2d4e0e623d84b47c4c Mon Sep 17 00:00:00 2001 From: "adam.wu" Date: Sun, 27 Apr 2025 21:57:42 +0800 Subject: [PATCH 1/3] use depency's package name and version instead of name Signed-off-by: wujunwei Signed-off-by: adam.wu # Conflicts: # pkg/chart/v2/util/dependencies_test.go --- pkg/chart/v2/util/dependencies.go | 23 +++++++--- pkg/chart/v2/util/dependencies_test.go | 40 ++++++++++++++++++ .../Chart.lock | 9 ++++ .../Chart.yaml | 12 ++++++ .../charts/test-0.1.0.tgz | Bin 0 -> 337 bytes .../charts/test-0.2.0.tgz | Bin 0 -> 339 bytes .../templates/autoscaler.yaml | 16 +++++++ .../values.yaml | 11 +++++ 8 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml create mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/values.yaml diff --git a/pkg/chart/v2/util/dependencies.go b/pkg/chart/v2/util/dependencies.go index e2cce6f2f..56b6f2f4c 100644 --- a/pkg/chart/v2/util/dependencies.go +++ b/pkg/chart/v2/util/dependencies.go @@ -184,18 +184,25 @@ Loop: processDependencyTags(c.Metadata.Dependencies, cvals) processDependencyConditions(c.Metadata.Dependencies, cvals, path) // make a map of charts to remove - rm := map[string]struct{}{} + rm := map[string][]string{} for _, r := range c.Metadata.Dependencies { if !r.Enabled { // remove disabled chart - rm[r.Name] = struct{}{} + rm[r.Name] = append(rm[r.Name], r.Version) } } // don't keep disabled charts in new slice cd := []*chart.Chart{} copy(cd, c.Dependencies()[:0]) for _, n := range c.Dependencies() { - if _, ok := rm[n.Metadata.Name]; !ok { + keep := true + for _, ver := range rm[n.Metadata.Name] { + if n.Metadata.Version == ver || IsCompatibleRange(ver, n.Metadata.Version) { + keep = false + break + } + } + if keep { cd = append(cd, n) } } @@ -203,11 +210,17 @@ Loop: cdMetadata := []*chart.Dependency{} copy(cdMetadata, c.Metadata.Dependencies[:0]) for _, n := range c.Metadata.Dependencies { - if _, ok := rm[n.Name]; !ok { + keep := true + for _, ver := range rm[n.Name] { + if n.Version == ver || IsCompatibleRange(ver, n.Version) { + keep = false + break + } + } + if keep { cdMetadata = append(cdMetadata, n) } } - // recursively call self to process sub dependencies for _, t := range cd { subpath := path + t.Metadata.Name + "." diff --git a/pkg/chart/v2/util/dependencies_test.go b/pkg/chart/v2/util/dependencies_test.go index 9b7fe3bef..2ddf861c7 100644 --- a/pkg/chart/v2/util/dependencies_test.go +++ b/pkg/chart/v2/util/dependencies_test.go @@ -585,3 +585,43 @@ func TestChartWithDependencyAliasedTwiceAndDoublyReferencedSubDependency(t *test } validateDependencyTree(t, c) } + +func TestDependencyWithSameNameDifferentVersion(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 + }{ + { + "same name subcharts enbale one", + M{"one": M{"enabled": true}, "two": M{"enabled": false}}, + []string{"parent-chart.test"}, + []string{"0.1.0"}, + }, + { + "same name subcharts enbale another one", + M{"one": M{"enabled": false}, "two": M{"enabled": true}}, + []string{"parent-chart.test"}, + []string{"0.2.0"}, + }, + } + + for _, tc := range tests { + c := loadChart(t, "testdata/dependent-chart-with-same-name-different-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-same-name-different-version/Chart.lock b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock new file mode 100644 index 000000000..b2f17fb39 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-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-same-name-different-version/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml new file mode 100644 index 000000000..1db9388db --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: parent-chart +version: 0.1.0 +appVersion: v0.1.0 +dependencies: + - name: test + version: "0.1.0" + condition: one.enabled + + - name: test + version: "0.2.0" + condition: two.enabled \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..6ee51c1c7b87f35efbdba339181a567495722832 GIT binary patch literal 337 zcmV-X0j~ZZiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PK~)YQr!LhI7tS2zG8Kr%uOm?E|a~y1Ph3XGm=$E1}!dkG6DW zxr|Y|G4OX0`u{@|&@U?|yo4mSbExV1BX2+$Fp^E{(APz^&Im* zQa^CI*#Y=2{|j7B^KXsG`Tq^>U@f78(*{5!VXw3H@E#n4|1`3Q>$v%1&7y>^gGIh|Sn8Z@MqdX}>Suyg*IWA9o@4OADI_7}PSl$B)5x>|2G>U#H1 j>VjXhwCt6(+`wbLM43z`^K(7|009607lsgu01N;CcDc zVQyr3R8em|NM&qo0PK~)YQr!LhI7tS2zG9!q;AG??E|a~y1Ph3XGm=$E1}!dkG6DW zxr|Y=G4OZ!(XT@k&@U@Ty_%8oTtf%=mrAhh!4enqgzJv1yKp2VL l_MOyvw_$17Debs{$8?DjiA3V(d;|ah|No3wW##}30079so|gas literal 0 HcmV?d00001 diff --git a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml new file mode 100644 index 000000000..976e5a8f1 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-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-same-name-different-version/values.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/values.yaml new file mode 100644 index 000000000..3424c6547 --- /dev/null +++ b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-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 From 9514321cb05e95da94b8f79ebdc4a5952d9f4926 Mon Sep 17 00:00:00 2001 From: wujunwei Date: Fri, 28 Oct 2022 23:47:07 +0800 Subject: [PATCH 2/3] add some test case Signed-off-by: wujunwei --- pkg/chart/v2/util/dependencies_test.go | 46 ++++++++++++++++++ .../Chart.lock | 9 ++++ .../Chart.yaml | 14 ++++++ .../charts/test-0.1.0.tgz | Bin 0 -> 584 bytes .../templates/autoscaler.yaml | 16 ++++++ .../values.yaml | 11 +++++ .../charts/test-0.1.0.tgz | Bin 337 -> 584 bytes .../charts/test-0.2.0.tgz | Bin 339 -> 584 bytes 8 files changed, 96 insertions(+) create mode 100644 pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock create mode 100644 pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml create mode 100644 pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz create mode 100644 pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml create mode 100644 pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml diff --git a/pkg/chart/v2/util/dependencies_test.go b/pkg/chart/v2/util/dependencies_test.go index 2ddf861c7..d9b5c31e4 100644 --- a/pkg/chart/v2/util/dependencies_test.go +++ b/pkg/chart/v2/util/dependencies_test.go @@ -625,3 +625,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 0000000000000000000000000000000000000000..33390b31bc17bb4061df0de8917829da1e247d32 GIT binary patch literal 584 zcmV-O0=NAiiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PI##Z<{<6%`;N|!~L4)5JL#j$6M7s>}iXlweNRums$hcvmMkl z;=fP9OCV@#)^Mrh`02RL@ZMYN(l%a=8HIK{>eC7!(D1qHR z@ydP4Ro+^AkJqF2e~I~;%-I6ql>etJ?)pCp!`}awzz7yvX5e-JDAXkEINhBGwedff zq&3edIVz2nmYGKnN@{Bo4k!zijagPAFw$h}Slio7`1s6+FIZx3f5H>VE zH1zC1ThuGEH;da_%X9vSmP@f9oszJ)q6Gf$lj!BB{covIIa)H4=5Gc6E)GukKZxh^ zj{j%VnDzd@1V-n_&>J142i!}|AEmIEgOXV*A%@;X7?o=H;4(sv3GmQCiPh_kF1| zZ%N;33gAexQf5*HU&&(Ns!sF=Qn}m|B&=iqC~sFjis0=QH2qj}O&MHW?+yc=fq&<2 z1&2iUn^pO(b|7K(<}ks3SAXC6OG-QTUm&Gvf3B2Pr;~E(sCmA+r)NB+@ab--s<)1h W9zA-zWBd#N0RR7F>guxq5&!^W_8d|G literal 0 HcmV?d00001 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 6ee51c1c7b87f35efbdba339181a567495722832..33390b31bc17bb4061df0de8917829da1e247d32 100644 GIT binary patch delta 536 zcmV+z0_XkF0>}iAJAYPDZ<{<6%`;N|!~L4)5JL#j$6M7s>}iXlweNRums$hcvmMkl z;=fP9OCV@#)^Mrh`02RL@ZMYN(lz*XzN;Qwn4}9hcEGU89 zKJm(Z$yMH3dym(n_J4`_n#|b(;FSNTEbjV03d7$2m%s=XT4vyO04UTX>^R+>2et7( zm!vh%C^;&Pm6n-D4@zol5)U9li@Om(laXtkl5vj!xVF-yn3LW!00kFIQaMl2BoH<< zJ~Z^~KwH!+vVS*=+grzgDbFrF~!O;88MV7$F zgTjT(u3P#FvRH@R&;xKcqwN;_CFO*M{7+aARMoh>B!BmwQJDVb<(h`78hS=iTF+Yd zeW^2VN#AM;;7GDkW>N-U$ztHDPV@&-x!e>atYiNuZ&yBw;O!PP{aABN8C+fO4g;Qn zf9GxmheY?ARr#%UAYt|9Fu{LUf8Y5_N;~#nAf;)4u9Q}%lXB{)dA_=*XFR3w>29d1 aw~mhguxq5&!^FwGVy( delta 287 zcmV+)0pR|~1knPJJAakIYQr!LhI7tS2zG8Kr%uOm?E|a~y1Ph3XGm=$E1}!dkG6DW zxr|Y|G4OX0`u{@|&@U?|yo4mSbExV1Am7-DaW&Qa{hYu%=H}e zKTQ$PV;Y#$@%{c?qDsUgVP2;Bw??!_V6AYga0(Li0iodV$Gt2uH=0T zqNynXI#N1R0O1q{X*r!*02(x;mU@=60XiC+K! 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 0309b9533c06503b125dc6a0eb3bbd1ca937eb92..347032915ba49a272da85b3468dddeb3ee0f0b06 100644 GIT binary patch delta 536 zcmV+z0_XkH0>}iAJAYPDZ<{<6%`;N|!~L4)5JL#)omBjX+caAl>*upqr-07@?pYu#Wwsylwd)f;St`^kc;}<#2VqJq&mb z{++uO>=WH@SLJuwfrQoT{RIDA{e9;zDc#tAft0rWxl%fvPRgmH=K1QLp7E5zr@Nu9 a-#R{e^bzRsj`1@90RR6b*Fu&65&!^a9tx=d delta 289 zcmV++0p9+|1k(bLJAakIYQr!LhI7tS2zG9!q;AG??E|a~y1Ph3XGm=$E1}!dkG6DW zxr|Y=G4OZ!(XT@k&@U@TyFAW{|)Y7Bff+420$QTr;GOZ9-M;zG_r{8xcSmr1o2(Y zhu}qHlLK_5bW{N0=m%*zo=X54)W?>3mWu00960j96vn01N;Ca-@*Z From 7e5f57533f4c41d1ff1103ba14fc58208f458d6d Mon Sep 17 00:00:00 2001 From: "adam.wu" Date: Sun, 27 Apr 2025 22:21:31 +0800 Subject: [PATCH 3/3] remove useless test case Signed-off-by: wujunwei Signed-off-by: adam.wu --- pkg/chart/v2/util/dependencies_test.go | 40 ------------------ .../Chart.lock | 0 .../Chart.yaml | 0 .../charts/test-0.1.0.tgz | Bin .../templates/autoscaler.yaml | 0 .../values.yaml | 0 .../Chart.lock | 9 ---- .../Chart.yaml | 12 ------ .../charts/test-0.1.0.tgz | Bin 584 -> 0 bytes .../charts/test-0.2.0.tgz | Bin 584 -> 0 bytes .../templates/autoscaler.yaml | 16 ------- .../values.yaml | 11 ----- 12 files changed, 88 deletions(-) rename pkg/{chartutil => chart/v2/util}/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock (100%) rename pkg/{chartutil => chart/v2/util}/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml (100%) rename pkg/{chartutil => chart/v2/util}/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz (100%) rename pkg/{chartutil => chart/v2/util}/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml (100%) rename pkg/{chartutil => chart/v2/util}/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml (100%) delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.1.0.tgz delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/charts/test-0.2.0.tgz delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml delete mode 100644 pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/values.yaml diff --git a/pkg/chart/v2/util/dependencies_test.go b/pkg/chart/v2/util/dependencies_test.go index d9b5c31e4..0895887eb 100644 --- a/pkg/chart/v2/util/dependencies_test.go +++ b/pkg/chart/v2/util/dependencies_test.go @@ -586,46 +586,6 @@ func TestChartWithDependencyAliasedTwiceAndDoublyReferencedSubDependency(t *test validateDependencyTree(t, c) } -func TestDependencyWithSameNameDifferentVersion(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 - }{ - { - "same name subcharts enbale one", - M{"one": M{"enabled": true}, "two": M{"enabled": false}}, - []string{"parent-chart.test"}, - []string{"0.1.0"}, - }, - { - "same name subcharts enbale another one", - M{"one": M{"enabled": false}, "two": M{"enabled": true}}, - []string{"parent-chart.test"}, - []string{"0.2.0"}, - }, - } - - for _, tc := range tests { - c := loadChart(t, "testdata/dependent-chart-with-same-name-different-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) - } - } - }) - } -} - func TestDependencyWithDifferentAliasNameSameVersion(t *testing.T) { type M = map[string]interface{} tests := []struct { diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock b/pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock similarity index 100% rename from pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock rename to pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/Chart.lock diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml b/pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml similarity index 100% rename from pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml rename to pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/Chart.yaml diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz b/pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz similarity index 100% rename from pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz rename to pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/charts/test-0.1.0.tgz diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml b/pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml similarity index 100% rename from pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml rename to pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/templates/autoscaler.yaml diff --git a/pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml b/pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml similarity index 100% rename from pkg/chartutil/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml rename to pkg/chart/v2/util/testdata/dependent-chart-with-different-alias-name-same-version/values.yaml diff --git a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock deleted file mode 100644 index b2f17fb39..000000000 --- a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.lock +++ /dev/null @@ -1,9 +0,0 @@ -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-same-name-different-version/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml deleted file mode 100644 index 1db9388db..000000000 --- a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/Chart.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v2 -name: parent-chart -version: 0.1.0 -appVersion: v0.1.0 -dependencies: - - name: test - version: "0.1.0" - condition: one.enabled - - - name: test - version: "0.2.0" - condition: two.enabled \ 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 deleted file mode 100644 index 33390b31bc17bb4061df0de8917829da1e247d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NAiiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PI##Z<{<6%`;N|!~L4)5JL#j$6M7s>}iXlweNRums$hcvmMkl z;=fP9OCV@#)^Mrh`02RL@ZMYN(l%a=8HIK{>eC7!(D1qHR z@ydP4Ro+^AkJqF2e~I~;%-I6ql>etJ?)pCp!`}awzz7yvX5e-JDAXkEINhBGwedff zq&3edIVz2nmYGKnN@{Bo4k!zijagPAFw$h}Slio7`1s6+FIZx3f5H>VE zH1zC1ThuGEH;da_%X9vSmP@f9oszJ)q6Gf$lj!BB{covIIa)H4=5Gc6E)GukKZxh^ zj{j%VnDzd@1V-n_&>J142i!}|AEmIEgOXV*A%@;X7?o=H;4(sv3GmQCiPh_kF1| zZ%N;33gAexQf5*HU&&(Ns!sF=Qn}m|B&=iqC~sFjis0=QH2qj}O&MHW?+yc=fq&<2 z1&2iUn^pO(b|7K(<}ks3SAXC6OG-QTUm&Gvf3B2Pr;~E(sCmA+r)NB+@ab--s<)1h W9zA-zWBd#N0RR7F>guxq5&!^W_8d|G 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 deleted file mode 100644 index 347032915ba49a272da85b3468dddeb3ee0f0b06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NAiiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PI##Z<{<6%`;N|!~L4)5JL#)etJKK6eU#=ZY9ff3BL%)#vdP^d}Rakf1V8smSi zNNb)`dQciGEpv|^l+@Ow9zc#3w5*VEyLvM7D9&j%;f0V*v0ZQhbgcy1kk<-2N>^{!La#96D?>iTH3Lp0h z=Q6+U=qt%$6Lv!nz}<{C8}JuY5E}A7VM$QeU!uIMOiaz)Ayyx zyaj!0D1ZaWN|{L&d?ky4t2)siNELEjlCX~bqr7eTAc8j=(DY-)HRW)1y*&(g4*s3H z73>q;Z&&4a+JS`C>-_}(UHyIMFDc#Fe}R;?{kc*)oleTBqvrYQo}TfP!l%2TuHQO7 Wdi3b=j`1@90RR6b*Fu&65&!^xtQUI# diff --git a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml deleted file mode 100644 index 976e5a8f1..000000000 --- a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/templates/autoscaler.yaml +++ /dev/null @@ -1,16 +0,0 @@ -################################################################################################### -# 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-same-name-different-version/values.yaml b/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/values.yaml deleted file mode 100644 index 3424c6547..000000000 --- a/pkg/chartutil/testdata/dependent-chart-with-same-name-different-version/values.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# 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