From e458a67f0c2c4dbecd37720bebe20225629de875 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Fri, 5 Apr 2019 13:40:06 -0700 Subject: [PATCH] ref(pkg/chart): add validation method to chart Consolidate validation of Chart.yaml. Signed-off-by: Adam Reese --- cmd/helm/create.go | 2 +- cmd/helm/create_test.go | 10 ++++++--- cmd/helm/dependency_update_test.go | 5 +++-- cmd/helm/install_test.go | 2 +- .../output/upgrade-with-bad-dependencies.txt | 2 +- .../testdata/testcharts/alpine/Chart.yaml | 1 + .../chart-bad-requirements/Chart.yaml | 1 + .../charts/reqsubchart/Chart.yaml | 1 + .../testcharts/chart-bad-type/Chart.yaml | 3 ++- .../testcharts/chart-missing-deps/Chart.yaml | 1 + .../charts/reqsubchart/Chart.yaml | 1 + .../testcharts/compressedchart-0.1.0.tgz | Bin 542 -> 477 bytes .../testcharts/compressedchart-0.2.0.tgz | Bin 540 -> 477 bytes .../testcharts/compressedchart-0.3.0.tgz | Bin 538 -> 477 bytes .../testcharts/decompressedchart/Chart.yaml | 1 + cmd/helm/testdata/testcharts/empty/Chart.yaml | 3 ++- .../testdata/testcharts/issue1979/Chart.yaml | 3 ++- .../testdata/testcharts/novals/Chart.yaml | 3 ++- .../testdata/testcharts/reqtest-0.1.0.tgz | Bin 786 -> 798 bytes .../testdata/testcharts/reqtest/Chart.yaml | 1 + .../reqtest/charts/reqsubchart/Chart.yaml | 1 + .../reqtest/charts/reqsubchart2/Chart.yaml | 1 + .../reqtest/charts/reqsubchart3-0.2.0.tgz | Bin 593 -> 498 bytes .../testdata/testcharts/signtest-0.1.0.tgz | Bin 471 -> 973 bytes .../testcharts/signtest-0.1.0.tgz.prov | 17 +++++++------- .../testdata/testcharts/signtest/Chart.yaml | 1 + .../testcharts/signtest/alpine/Chart.yaml | 1 + cmd/helm/upgrade_test.go | 1 + docs/examples/alpine/Chart.yaml | 1 + docs/examples/nginx/Chart.yaml | 1 + docs/examples/nginx/charts/alpine/Chart.yaml | 1 + pkg/chart/chart.go | 8 +++++-- pkg/chart/loader/load.go | 8 ++----- pkg/chart/loader/load_test.go | 2 +- .../loader/testdata/albatross/Chart.yaml | 1 + pkg/chart/loader/testdata/frobnitz-1.2.3.tgz | Bin 3491 -> 3482 bytes .../frobnitz/charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../frobnitz/charts/mariner-4.3.2.tgz | Bin 917 -> 967 bytes .../testdata/frobnitz_backslash-1.2.3.tgz | Bin 3619 -> 3490 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 967 bytes pkg/chart/loader/testdata/genfrob.sh | 2 ++ pkg/chart/loader/testdata/mariner/Chart.yaml | 1 + .../mariner/charts/albatross-0.1.0.tgz | Bin 291 -> 306 bytes pkg/chart/metadata.go | 19 ++++++++++++++++ pkg/chartutil/chartfile_test.go | 4 ++-- pkg/chartutil/create_test.go | 12 ++++++++-- pkg/chartutil/dependencies_test.go | 1 + pkg/chartutil/save.go | 13 +++-------- pkg/chartutil/save_test.go | 10 +++++---- pkg/chartutil/testdata/albatross/Chart.yaml | 1 + .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 967 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 967 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 967 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 967 bytes pkg/chartutil/testdata/frobnitz-1.2.3.tgz | Bin 3559 -> 3485 bytes .../frobnitz/charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../frobnitz/charts/mariner-4.3.2.tgz | Bin 954 -> 962 bytes .../testdata/frobnitz_backslash-1.2.3.tgz | Bin 3617 -> 3496 bytes .../charts/alpine/Chart.yaml | 1 + .../charts/alpine/charts/mast1/Chart.yaml | 1 + .../charts/alpine/charts/mast2-0.1.0.tgz | Bin 325 -> 252 bytes .../charts/mariner-4.3.2.tgz | Bin 1034 -> 962 bytes pkg/chartutil/testdata/genfrob.sh | 2 ++ pkg/chartutil/testdata/mariner/Chart.yaml | 1 + .../mariner/charts/albatross-0.1.0.tgz | Bin 292 -> 305 bytes pkg/chartutil/testdata/moby/Chart.yaml | 1 + .../testdata/moby/charts/pequod/Chart.yaml | 1 + .../moby/charts/pequod/charts/ahab/Chart.yaml | 1 + .../testdata/moby/charts/spouter/Chart.yaml | 1 + pkg/downloader/chart_downloader.go | 9 ++++---- pkg/downloader/testdata/signtest-0.1.0.tgz | Bin 471 -> 973 bytes .../testdata/signtest-0.1.0.tgz.prov | 17 +++++++------- pkg/downloader/testdata/signtest/Chart.yaml | 1 + .../testdata/signtest/alpine/Chart.yaml | 1 + pkg/lint/rules/testdata/albatross/Chart.yaml | 1 + .../rules/testdata/badchartfile/Chart.yaml | 1 + .../rules/testdata/badvaluesfile/Chart.yaml | 1 + pkg/lint/rules/testdata/goodone/Chart.yaml | 1 + pkg/provenance/sign_test.go | 7 +++--- pkg/provenance/testdata/hashtest-1.2.3.tgz | Bin 465 -> 399 bytes .../testdata/hashtest-1.2.3.tgz.prov | 21 ++++++++++++++++++ pkg/provenance/testdata/hashtest.sha256 | 2 +- pkg/provenance/testdata/hashtest/Chart.yaml | 1 + pkg/provenance/testdata/msgblock.yaml | 3 ++- pkg/provenance/testdata/msgblock.yaml.asc | 19 ++++++++-------- pkg/registry/cache.go | 11 ++++++--- pkg/registry/client_test.go | 5 +++-- .../repotest/testdata/examplechart-0.1.0.tgz | Bin 558 -> 500 bytes .../repotest/testdata/examplechart/Chart.yaml | 1 + .../testdata/repository/frobnitz-1.2.3.tgz | Bin 1165 -> 3485 bytes .../testdata/repository/sprocket-1.1.0.tgz | Bin 814 -> 414 bytes .../testdata/repository/sprocket-1.2.0.tgz | Bin 847 -> 413 bytes .../repository/universe/zarthal-1.0.0.tgz | Bin 1121 -> 411 bytes 115 files changed, 196 insertions(+), 78 deletions(-) create mode 100755 pkg/provenance/testdata/hashtest-1.2.3.tgz.prov diff --git a/cmd/helm/create.go b/cmd/helm/create.go index 0caf11d42..6ab8dee24 100644 --- a/cmd/helm/create.go +++ b/cmd/helm/create.go @@ -81,7 +81,7 @@ func (o *createOptions) run(out io.Writer) error { Type: "application", Version: "0.1.0", AppVersion: "1.0", - APIVersion: chart.APIVersionv1, + APIVersion: chart.APIVersionV1, } if o.starter != "" { diff --git a/cmd/helm/create_test.go b/cmd/helm/create_test.go index 33d3b8eee..6ce88dbb7 100644 --- a/cmd/helm/create_test.go +++ b/cmd/helm/create_test.go @@ -55,7 +55,7 @@ func TestCreateCmd(t *testing.T) { if c.Name() != cname { t.Errorf("Expected %q name, got %q", cname, c.Name()) } - if c.Metadata.APIVersion != chart.APIVersionv1 { + if c.Metadata.APIVersion != chart.APIVersionV1 { t.Errorf("Wrong API version: %q", c.Metadata.APIVersion) } } @@ -73,7 +73,11 @@ func TestCreateStarterCmd(t *testing.T) { // Create a starter. starterchart := hh.Starters() os.Mkdir(starterchart, 0755) - if dest, err := chartutil.Create(&chart.Metadata{Name: "starterchart"}, starterchart); err != nil { + if dest, err := chartutil.Create(&chart.Metadata{ + APIVersion: chart.APIVersionV1, + Name: "starterchart", + Version: "0.1.0", + }, starterchart); err != nil { t.Fatalf("Could not create chart: %s", err) } else { t.Logf("Created %s", dest) @@ -106,7 +110,7 @@ func TestCreateStarterCmd(t *testing.T) { if c.Name() != cname { t.Errorf("Expected %q name, got %q", cname, c.Name()) } - if c.Metadata.APIVersion != chart.APIVersionv1 { + if c.Metadata.APIVersion != chart.APIVersionV1 { t.Errorf("Wrong API version: %q", c.Metadata.APIVersion) } diff --git a/cmd/helm/dependency_update_test.go b/cmd/helm/dependency_update_test.go index 7e366bde2..f724cbf68 100644 --- a/cmd/helm/dependency_update_test.go +++ b/cmd/helm/dependency_update_test.go @@ -205,8 +205,9 @@ func TestDependencyUpdateCmd_DontDeleteOldChartsOnError(t *testing.T) { // The baseURL can be used to point to a particular repository server. func createTestingMetadata(name, baseURL string) *chart.Metadata { return &chart.Metadata{ - Name: name, - Version: "1.2.3", + APIVersion: chart.APIVersionV1, + Name: name, + Version: "1.2.3", Dependencies: []*chart.Dependency{ {Name: "reqtest", Version: "0.1.0", Repository: baseURL}, {Name: "compressedchart", Version: "0.1.0", Repository: baseURL}, diff --git a/cmd/helm/install_test.go b/cmd/helm/install_test.go index 38464b585..05ec6ea1a 100644 --- a/cmd/helm/install_test.go +++ b/cmd/helm/install_test.go @@ -113,7 +113,7 @@ func TestInstall(t *testing.T) { }, // Install, chart with bad dependencies in Chart.yaml in /charts { - name: "install chart with bad dependencies in Chart.yaml", + name: "install chart with bad dependencies in Chart.yaml", cmd: "install badreq testdata/testcharts/chart-bad-requirements", wantError: true, }, diff --git a/cmd/helm/testdata/output/upgrade-with-bad-dependencies.txt b/cmd/helm/testdata/output/upgrade-with-bad-dependencies.txt index 5652097a6..6dddc7344 100644 --- a/cmd/helm/testdata/output/upgrade-with-bad-dependencies.txt +++ b/cmd/helm/testdata/output/upgrade-with-bad-dependencies.txt @@ -1 +1 @@ -Error: cannot load Chart.yaml: error converting YAML to JSON: yaml: line 5: did not find expected '-' indicator +Error: cannot load Chart.yaml: error converting YAML to JSON: yaml: line 6: did not find expected '-' indicator diff --git a/cmd/helm/testdata/testcharts/alpine/Chart.yaml b/cmd/helm/testdata/testcharts/alpine/Chart.yaml index e45d7326a..eec261220 100644 --- a/cmd/helm/testdata/testcharts/alpine/Chart.yaml +++ b/cmd/helm/testdata/testcharts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: alpine diff --git a/cmd/helm/testdata/testcharts/chart-bad-requirements/Chart.yaml b/cmd/helm/testdata/testcharts/chart-bad-requirements/Chart.yaml index ba72c77bf..1f445ee11 100644 --- a/cmd/helm/testdata/testcharts/chart-bad-requirements/Chart.yaml +++ b/cmd/helm/testdata/testcharts/chart-bad-requirements/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: chart-missing-deps version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/chart-bad-requirements/charts/reqsubchart/Chart.yaml b/cmd/helm/testdata/testcharts/chart-bad-requirements/charts/reqsubchart/Chart.yaml index c3813bc8c..356135537 100644 --- a/cmd/helm/testdata/testcharts/chart-bad-requirements/charts/reqsubchart/Chart.yaml +++ b/cmd/helm/testdata/testcharts/chart-bad-requirements/charts/reqsubchart/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: reqsubchart version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/chart-bad-type/Chart.yaml b/cmd/helm/testdata/testcharts/chart-bad-type/Chart.yaml index 75767a62c..e77b5afaa 100644 --- a/cmd/helm/testdata/testcharts/chart-bad-type/Chart.yaml +++ b/cmd/helm/testdata/testcharts/chart-bad-type/Chart.yaml @@ -1,7 +1,8 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: chart-bad-type sources: -- https://github.com/helm/helm + - https://github.com/helm/helm version: 0.1.0 type: foobar diff --git a/cmd/helm/testdata/testcharts/chart-missing-deps/Chart.yaml b/cmd/helm/testdata/testcharts/chart-missing-deps/Chart.yaml index 8cd47d20c..9605636db 100644 --- a/cmd/helm/testdata/testcharts/chart-missing-deps/Chart.yaml +++ b/cmd/helm/testdata/testcharts/chart-missing-deps/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: chart-missing-deps version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/chart-missing-deps/charts/reqsubchart/Chart.yaml b/cmd/helm/testdata/testcharts/chart-missing-deps/charts/reqsubchart/Chart.yaml index c3813bc8c..356135537 100644 --- a/cmd/helm/testdata/testcharts/chart-missing-deps/charts/reqsubchart/Chart.yaml +++ b/cmd/helm/testdata/testcharts/chart-missing-deps/charts/reqsubchart/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: reqsubchart version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/compressedchart-0.1.0.tgz b/cmd/helm/testdata/testcharts/compressedchart-0.1.0.tgz index 575b271286ca8a01b723298c49dedba66c6c18c6..3c9c24d76063d6a904405b2d6a7a84cb087f1ce4 100644 GIT binary patch delta 437 zcmV;m0ZRU!1luK5de?FgO|A*k6)A!ilZmsQQ@4sq^t!bQ(bhb5)`Cl#;f4u*v+5bTp z!$%aM=n{yB!-I!SOAeNu;o7(c0#;wKp`?m2d}>XC)P>-qBuFhWL&JUv7Nu&9YhFSm zMloxGfYSapkFGAp;Hbgf-vvAmkyhp#)vz(r!m}3&J~-Zjcl#@MAwi%d2y7gwLcP8J faxXqop&FCFO){BG=5&4p00960AsgA302BZKjjYvI delta 502 zcmVttbXOLHjn6SkM0 ziegV}QCTvQoHT6rzjtIWX;Gn}#AIpELx>e4>m!^*P;IB z=~dMKDVV?#*SwPshLi7Q9|Q$UCh)ly7U;v_%kBGjQ|i@l=dgsekmx%sv5?##_&hO0 z5wu(w3r@qzxBYM+6#d-k&Va*zrj?vB3rk?gEzNHFYvSpUU!MB!IeS9=?~i5QVy-D|p3hMXl1%r=D?m(;l sNxvj$(SQ_+>I=5K`+DbSZ3(MHEDIu$NaT2a1^@v6|5o&hN&pl901S%%!~g&Q diff --git a/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz b/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz index ba96a80c9c54db1f77a16b45623a9dd6ce816d76..16a644a796f430a5621409b0a5af344973861c15 100644 GIT binary patch delta 437 zcmV;m0ZRUy1lb-?EfH) z;UkJrbP2@6;labEB?rsSaBW-z0jsarP*TMhKD8!6>O$~Q5~P-xp<%xSi&C}5H7_9& zqnI^8Kxu!QM^_hPaMa-L?*g8ONGtP=YSspoCYekob2>i)00960YK^g$02BZK=AGB3 delta 500 zcmVU*Hb+ne>sKi!=8vngu_@LDeMt42q ql3>X}Nlh$c%eyak!8poTCDXMakw_$t=SKhl0RR87^wW$06aWCLFZ<#E diff --git a/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz b/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz index 89776bfa80fd8e37cb819073ce30792fbcb28fe3..051bd6fd9a030a3f4327e8002a8912c1f5f68050 100644 GIT binary patch delta 437 zcmV;m0ZRUw1l2QY4@W(zp3d#(C)27dN1#s^!r$qWU>xbA*BU1GkAT5^rkIR(x3HRj6b+?1 znjpL5*KkK{VOJQi^by|m3yO|}QsL0jEexusSpB?}R+ZAlrIX7XWa$42xub!h`O=YP&cV=sAsZNl($k)jaAYeu=>K%+|NN%R{-1?A zV)pRxpx&b;_zn#%v1fs+wU69?Ts=PKKJZ^N^j~$v*0jz?I@ubB{4eM8Ki>aU_Wvx5 z;UkJrbP2@6{=vh#BL|D#aARBx0qd{WQc}ejK6NHR>O=5R5~Plpp=G}Si&A&SwJ#wO zqnH&zKOX{ delta 498 zcmV25EQiAWLU-9| zDE1p$OqPTsCktJ_`;b$z;laX4NNLgUUuH@`aN&NTaWRaE%*M z4Z29c$~e4hm*g}B@|hM5U7;5)*_xd1x^gyUJbUcjB>tDa{?|ga-C5Cqm^-u2!Tqhq@wu3f(j)ZA^OBF zieQCw9>HK4>v1?p9SpXnbqLgdSS12^mSN{D&35#A;?d4u9{ck=d;0p{AIrYRf<4j- z4(Xrglb-(P^E^-bKLE{`zRX1Pm~XCaIrB?l^6H-NrKOszW!NFs*#m8j!rhm z!Tdk}>;9k5lK#)a5T9cnce+c|yMxE3CXHn)RVj4^D~j);ii!H+8sJ-DYmEyYz9ywm zDYHZ)LQzXyy@n$tf?UUxAL>8ag)XxpG*u%0Y~ZDJw30ul#72f1FJ3Wx(rOE%yPk1L ou;iemCYG_q?YG-t9A&JM=~|FTBofE-D*yoh|LpYS&Hxku0M-!zv;Y7A diff --git a/cmd/helm/testdata/testcharts/decompressedchart/Chart.yaml b/cmd/helm/testdata/testcharts/decompressedchart/Chart.yaml index 3e65afdfa..92ba4d88f 100644 --- a/cmd/helm/testdata/testcharts/decompressedchart/Chart.yaml +++ b/cmd/helm/testdata/testcharts/decompressedchart/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: decompressedchart version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/empty/Chart.yaml b/cmd/helm/testdata/testcharts/empty/Chart.yaml index 8bdba0330..4f1dc0012 100644 --- a/cmd/helm/testdata/testcharts/empty/Chart.yaml +++ b/cmd/helm/testdata/testcharts/empty/Chart.yaml @@ -1,6 +1,7 @@ +apiVersion: v1 description: Empty testing chart home: https://helm.sh/helm name: empty sources: -- https://github.com/helm/helm + - https://github.com/helm/helm version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/issue1979/Chart.yaml b/cmd/helm/testdata/testcharts/issue1979/Chart.yaml index e45d7326a..5269b5cf6 100644 --- a/cmd/helm/testdata/testcharts/issue1979/Chart.yaml +++ b/cmd/helm/testdata/testcharts/issue1979/Chart.yaml @@ -1,6 +1,7 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: alpine sources: -- https://github.com/helm/helm + - https://github.com/helm/helm version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/novals/Chart.yaml b/cmd/helm/testdata/testcharts/novals/Chart.yaml index 905258117..ada85a4c4 100644 --- a/cmd/helm/testdata/testcharts/novals/Chart.yaml +++ b/cmd/helm/testdata/testcharts/novals/Chart.yaml @@ -1,6 +1,7 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: novals sources: -- https://github.com/helm/helm + - https://github.com/helm/helm version: 0.2.0 diff --git a/cmd/helm/testdata/testcharts/reqtest-0.1.0.tgz b/cmd/helm/testdata/testcharts/reqtest-0.1.0.tgz index 8618e91d73eb13803aefe7365459c8828163200d..5d8e46a50804cd42f9f5debd5f099fbe2f97f1d0 100644 GIT binary patch delta 751 zcmVZr2P(h^ct_3t6woXoMc{Nn#I)}=8FT6GqX|C(2Jvq7kwXsszLHM_!_%WCXud z!hvgy(bhX~6-wFK4>k9BB~8l>~?UXRN#aXIU2N|3OfVl)=^OWsm>8l?2D<|16ut!T%u$`9I|U-To)N z6#$3xf711T8VCOep||{>kk0q>=bl;M->}dBzGw=76Y~FT66*g!2>JiI+2?;>1;7dU zf0l&je}fS6f5`v4{ZG%E|HJdYLFg_2ry>7eBK!OwF8_Dm|I22RY4Cpt!Ye!1%|8Fn hn*YP|zd;E3|GM*kAP~4-{t5s9|NpvsOqKvN008hZqhA03 delta 739 zcmV<90v!FG29gGlJAau$Z`(E$$8+YVc!LkwjE$ltTLuhlz>o~sutN)^$hDxQ7l{c) zDkSA3E!xjsScX$qac#s=C8Xx>ASaYUk%)fe|5*la9azzccOI*c(kolNRa z##r-{P1yMH=em6q#$j{8dGe-wKEyI=rsxpQcg1*c*40Ki?23g(rNsZbe|Jh|Z+T1p1+E*BPTRhHT~ z3pPh7Yx|+#F3E+;eg}h+JF!40xyv`&xk||Z6lQ$6-G9QbrNJw4k15;VG<;uV3ThxAuRPl7fwuy}goP@BSY({g21q|8Dpu|AVTeJRlT5)(SsSFg_A? z_}^Mdu+M+Sp7jYKe;4@t@ALn5|HIY_fc^PD zZu-Am61@K%&}#kDc zVQyr3R8em|NM&qo0PL1gi_<_5fbV&K#YkSX$Y#?J3il>GLGeMM(pT9e(`2uk-F0S@ zdW!ybX-f63A}3f*4)ZaW*2-P|KV2eU?Eqk|1)>|mo3`PG|m&AbB+7_FS6nn|BGz${~<`=osJR7F+>lCcMrQ39hAMXwQ&su zU2S!PEJXtETf@M82%aJXw`eUi)|b%fShdDA&w*We+Lo8%tVmih{ z`$CqVDIMdn&^GBl9EUu(^yfsSuC{%Ejj_mLCV3acOqO~pW-@j`%)W^P)|!m(8D3w# oWFZ6jYpkM>rbe9}{zv|Lx=AM{CLR;t0{{U3|IDE~9sm#k0Pxi6ng9R* literal 593 zcmV-X0Ch>%v#7WE? zC$pWF@vy(0OR{yXP?-eX(8PUI*^YCzFFk*K*8IZsSza@3BX4#;_`d%tNnotgbgca_ zp6Y8Li2NjtVm}T-@Pjx?;u$3O^+fqzUV4)LGIe-59RwOlI$wuLG7u&KF% ztQWEns)CN?=d9w!b>{H776we;b*;A8!2Kejl5GYJvw4lyFFIsZDCf54vp7enP<^K1`_~`y8+5p!@E919de7pP^{r6u)AHHHP>bw=ewcnKgQip z?CF2aWRK_ku@8W|^dAQ4FZn8IB%Q%XT5P~2G ff*=TjAP9mW2!bF8f*=Tj_$z(_p3(*m04M+eV_7RC diff --git a/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz b/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz index 6de9d988d47cfea649eaa5b23ba09d8a5fee04ed..c74e5b0ef5cbb7989379cb291937147a5cdef34b 100644 GIT binary patch delta 938 zcmV;b16BOj1I-5rABzYS00000kq9$?Sxs-_HWSX7zhYkJ@)lUrv>nH&Z$Yy_fwpO| zSrjOWVm+3|60sD?l9Us}&3`XMSx%s|b&J>ziq&(GO$|9iiO+n=%S;FIVen0kF7P!L z>g>=ELWt>P60bst_Eii=m%HC_d^nm;FU~+5+>$>*=>xhm@oHV|&HYD!R{lhP&P$_b zuo|+IeBz`H@&6TkOR9jRIvKDu4!$cFe}tQ*+J|Iwt)|BK16gTD{>4VF*=~sVa28w)d|0wGg8BYv-qqfgS&OPO6ZZ zHjWOhV=w|OMxL{C_?Sx% zzO>f3;KApl6lBUQpumviQfKeLk-{KX1QtX7Y#epU&OuX#RdoUXw~m(bfl|1aA&38c z#o<^T9a{2yJ6JN};n ze^>uslT~I72n+Nwfvb3bLg0I;%LlL~Wx1&Wdme)Iv%#Q>AKd5hx@`~CXNq}Kx`h0U z^>@OV40*ZWi7BFdJ*jIVoE~lde|Ud&{lj}+qzBZokN*=fY{&n}wB!Ft5Cb|rU||)( zJ$lGUlfytMl)j4oA*UuWhj||RfsQcHmfUmB*vFh;{!~BCA(f7Ql3?7rsRcYBtjMjw z%c#hjw5lGWU#R0hvc#0tEwcoR4hst8e6#qo=F}XPQqj}Gm3=8Ku~Y$SvDm5%Ik9i^A#e;`HZiQiyBkB|M$hS&LG{ht9ST#$-&KR`}ShFIx8 zn|ViWC6ihh>Q4(d&FZbSwzqfY?IgA%@H_lgnotSIvfdq1ONd4 M|DYQzL;xfJ0JhWHHUIzs delta 432 zcmV;h0Z;zT2iF4#ABzYS010l0kq9$?mR;-9Fcijj-A{33Hwqft&8@Jz;VuLfg?ZzZ zr0r=NOp}tNoBQ^jq-^LE25xTrArFPT^qjoV^LwZjjdEz+>$fd8jvaU>C%0Bg$`^~! zlFr*SOY>7d%xAMan@`~82l<-@>$suquU+T-a!*7R+R}*L39VMJhIc4CD19k^K&=hD z9||-IsX!9NJ6yrBT#_9c8*);Xu{3$~HKP7eC;oR_4ru?20bJsLMzH_R|2%t>NB-}j zDQvLjgLE(!K*0W36fBv-msVJyhr`$P#}BXQb;q5<3Th$I2W+sE+#q;^7^?_+E{p}I zq40fcDOxBR9`sQK!{XrwNHOrdNk`Xv}7y2Z|u z@7iDHxvD(y*l_=|0ndAbwfI5Suoo2f>;;2QN*+L~km-*EJsOZgk`KYW)lV0RR8fN1@UH5C8zip4DLh diff --git a/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz.prov b/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz.prov index 94235399a..d325bb266 100644 --- a/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz.prov +++ b/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz.prov @@ -1,20 +1,21 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 +apiVersion: v1 description: A Helm chart for Kubernetes name: signtest version: 0.1.0 ... files: - signtest-0.1.0.tgz: sha256:dee72947753628425b82814516bdaa37aef49f25e8820dd2a6e15a33a007823b + signtest-0.1.0.tgz: sha256:e5ef611620fb97704d8751c16bab17fedb68883bfb0edc76f78a70e9173f9b55 -----BEGIN PGP SIGNATURE----- -wsBcBAEBCgAQBQJXomNHCRCEO7+YH8GHYgAALywIAG1Me852Fpn1GYu8Q1GCcw4g -l2k7vOFchdDwDhdSVbkh4YyvTaIO3iE2Jtk1rxw+RIJiUr0eLO/rnIJuxZS8WKki -DR1LI9J1VD4dxN3uDETtWDWq7ScoPsRY5mJvYZXC8whrWEt/H2kfqmoA9LloRPWp -flOE0iktA4UciZOblTj6nAk3iDyjh/4HYL4a6tT0LjjKI7OTw4YyHfjHad1ywVCz -9dMUc1rPgTnl+fnRiSPSrlZIWKOt1mcQ4fVrU3nwtRUwTId2k8FtygL0G6M+Y6t0 -S6yaU7qfk9uTxkdkUF7Bf1X3ukxfe+cNBC32vf4m8LY4NkcYfSqK2fGtQsnVr6s= -=NyOM +wsBcBAEBCgAQBQJcoosfCRCEO7+YH8GHYgAA220IALAs8T8NPgkcLvHu+5109cAN +BOCNPSZDNsqLZW/2Dc9cKoBG7Jen4Qad+i5l9351kqn3D9Gm6eRfAWcjfggRobV/ +9daZ19h0nl4O1muQNAkjvdgZt8MOP3+PB3I3/Tu2QCYjI579SLUmuXlcZR5BCFPR +PJy+e3QpV2PcdeU2KZLG4tjtlrq+3QC9ZHHEJLs+BVN9d46Dwo6CxJdHJrrrAkTw +M8MhA92vbiTTPRSCZI9x5qDAwJYhoq0oxLflpuL2tIlo3qVoCsaTSURwMESEHO32 +XwYG7BaVDMELWhAorBAGBGBwWFbJ1677qQ2gd9CN0COiVhekWlFRcnn60800r84= +=k9Y9 -----END PGP SIGNATURE----- \ No newline at end of file diff --git a/cmd/helm/testdata/testcharts/signtest/Chart.yaml b/cmd/helm/testdata/testcharts/signtest/Chart.yaml index 90964b44a..f1f73723a 100644 --- a/cmd/helm/testdata/testcharts/signtest/Chart.yaml +++ b/cmd/helm/testdata/testcharts/signtest/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: signtest version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/signtest/alpine/Chart.yaml b/cmd/helm/testdata/testcharts/signtest/alpine/Chart.yaml index e45d7326a..eec261220 100644 --- a/cmd/helm/testdata/testcharts/signtest/alpine/Chart.yaml +++ b/cmd/helm/testdata/testcharts/signtest/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: alpine diff --git a/cmd/helm/upgrade_test.go b/cmd/helm/upgrade_test.go index bba9256fc..e8b31431e 100644 --- a/cmd/helm/upgrade_test.go +++ b/cmd/helm/upgrade_test.go @@ -29,6 +29,7 @@ import ( func TestUpgradeCmd(t *testing.T) { tmpChart := testTempDir(t) cfile := &chart.Metadata{ + APIVersion: chart.APIVersionV1, Name: "testUpgradeChart", Description: "A Helm chart for Kubernetes", Version: "0.1.0", diff --git a/docs/examples/alpine/Chart.yaml b/docs/examples/alpine/Chart.yaml index e56f8a469..a2403f594 100644 --- a/docs/examples/alpine/Chart.yaml +++ b/docs/examples/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/docs/examples/nginx/Chart.yaml b/docs/examples/nginx/Chart.yaml index 3d6f5751b..a6a942435 100644 --- a/docs/examples/nginx/Chart.yaml +++ b/docs/examples/nginx/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: nginx description: A basic NGINX HTTP server version: 0.1.0 diff --git a/docs/examples/nginx/charts/alpine/Chart.yaml b/docs/examples/nginx/charts/alpine/Chart.yaml index e56f8a469..a2403f594 100644 --- a/docs/examples/nginx/charts/alpine/Chart.yaml +++ b/docs/examples/nginx/charts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/pkg/chart/chart.go b/pkg/chart/chart.go index ac2bf8b6b..06aebf37b 100644 --- a/pkg/chart/chart.go +++ b/pkg/chart/chart.go @@ -15,8 +15,8 @@ limitations under the License. package chart -// APIVersionv1 is the API version number for version 1. -const APIVersionv1 = "v1" +// APIVersionV1 is the API version number for version 1. +const APIVersionV1 = "v1" // Chart is a helm package that contains metadata, a default config, zero or more // optionally parameterizable templates, and zero or more charts (dependencies). @@ -96,3 +96,7 @@ func (ch *Chart) ChartFullPath() string { } return ch.Name() } + +func (ch *Chart) Validate() error { + return ch.Metadata.Validate() +} diff --git a/pkg/chart/loader/load.go b/pkg/chart/loader/load.go index 0782a964e..67a9f6279 100644 --- a/pkg/chart/loader/load.go +++ b/pkg/chart/loader/load.go @@ -106,12 +106,8 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) { } } - // Ensure that we got a Chart.yaml file - if c.Metadata == nil { - return c, errors.New("chart metadata (Chart.yaml) missing") - } - if c.Name() == "" { - return c, errors.New("invalid chart (Chart.yaml): name must not be empty") + if err := c.Validate(); err != nil { + return c, err } for n, files := range subcharts { diff --git a/pkg/chart/loader/load_test.go b/pkg/chart/loader/load_test.go index 686f50dcf..b5159d04f 100644 --- a/pkg/chart/loader/load_test.go +++ b/pkg/chart/loader/load_test.go @@ -109,7 +109,7 @@ icon: https://example.com/64x64.png if err == nil { t.Fatal("Expected err to be non-nil") } - if err.Error() != "chart metadata (Chart.yaml) missing" { + if err.Error() != "metadata is required" { t.Errorf("Expected chart metadata missing error, got '%s'", err.Error()) } } diff --git a/pkg/chart/loader/testdata/albatross/Chart.yaml b/pkg/chart/loader/testdata/albatross/Chart.yaml index eeef737ff..b5188fde0 100644 --- a/pkg/chart/loader/testdata/albatross/Chart.yaml +++ b/pkg/chart/loader/testdata/albatross/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: albatross description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz b/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz index 983820e0619f2eab82530fd6b4d35fd198c338c1..b2b76a83c768f144f8b436a0deeb9da2c9a57bd1 100644 GIT binary patch literal 3482 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 literal 3491 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 Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz b/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz index 88c24d822573423dccc1f07e60dd13eb6782eb13..3190136b050e62c628b3c817fd963ac9dc4a9e25 100644 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 917 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 literal 3619 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 diff --git a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/Chart.yaml b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100755 --- a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/Chart.yaml +++ b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100755 --- a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mast1 description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6adf946f76033b6ee584affc12433cb78..61cb62051110b55f3d08213dc81dcf0b1c2d8e53 100755 GIT binary patch literal 252 zcmVDc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chart/loader/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz b/pkg/chart/loader/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..3190136b050e62c628b3c817fd963ac9dc4a9e25 100755 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 1034 zcmV+l1oitLiwFRoe*ISf1MQf5Y!pQt$1j*vT_1mmq6v0Vv`Rzw_Pu%yR;*Eys*pfJ z2%2>6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L3W)ya-P4{6H-~8YpDt~S0vMe z))UhAThdtnrn|_A%B!!i@c2Hpa)}piu2RJ#{Pg zdyX8$@qH3GQ!^Ugg9kb`#ePdhGe6Y^>9CQ66^gRD{t6fN5bZ_qcjqyH;EW15_wNh8} z&(pGqNZxxR@A>ER-|L<$nqPs~vfsGw5IVcB=#ie-^t3s>3~H>S=b>h|=fGYZ+4-qS zCMuDlwWoFBSp4*X;7cy~KWa0uU*ZSwS^i~SUgv-8NB+OVJpVDg!3`V>u`{;TrV>PY p2(5J$t*v3#ZFh`x0{{R300000000000002|Mz7L(0N(&8005*?j-CJj diff --git a/pkg/chart/metadata.go b/pkg/chart/metadata.go index d0f03a61a..4a4139d1b 100644 --- a/pkg/chart/metadata.go +++ b/pkg/chart/metadata.go @@ -15,6 +15,8 @@ limitations under the License. package chart +import "errors" + // Maintainer describes a Chart maintainer. type Maintainer struct { // Name is a user name or organization name @@ -65,3 +67,20 @@ type Metadata struct { // Specifies the chart type: application or library Type string `json:"type,omitempty"` } + +func (md *Metadata) Validate() error { + if md == nil { + return errors.New("metadata is required") + } + if md.APIVersion == "" { + return errors.New("metadata apiVersion is required") + } + if md.Name == "" { + return errors.New("metadata name is required") + } + if md.Version == "" { + return errors.New("metadata version is required") + } + // TODO validate valid semver here? + return nil +} diff --git a/pkg/chartutil/chartfile_test.go b/pkg/chartutil/chartfile_test.go index 358c8231d..33d149501 100644 --- a/pkg/chartutil/chartfile_test.go +++ b/pkg/chartutil/chartfile_test.go @@ -40,8 +40,8 @@ func verifyChartfile(t *testing.T, f *chart.Metadata, name string) { } // Api instead of API because it was generated via protobuf. - if f.APIVersion != chart.APIVersionv1 { - t.Errorf("Expected API Version %q, got %q", chart.APIVersionv1, f.APIVersion) + if f.APIVersion != chart.APIVersionV1 { + t.Errorf("Expected API Version %q, got %q", chart.APIVersionV1, f.APIVersion) } if f.Name != name { diff --git a/pkg/chartutil/create_test.go b/pkg/chartutil/create_test.go index ab8b43e96..162168690 100644 --- a/pkg/chartutil/create_test.go +++ b/pkg/chartutil/create_test.go @@ -34,7 +34,11 @@ func TestCreate(t *testing.T) { } defer os.RemoveAll(tdir) - cf := &chart.Metadata{Name: "foo"} + cf := &chart.Metadata{ + APIVersion: chart.APIVersionV1, + Name: "foo", + Version: "0.1.0", + } c, err := Create(cf, tdir) if err != nil { @@ -85,7 +89,11 @@ func TestCreateFrom(t *testing.T) { } defer os.RemoveAll(tdir) - cf := &chart.Metadata{Name: "foo"} + cf := &chart.Metadata{ + APIVersion: chart.APIVersionV1, + Name: "foo", + Version: "0.1.0", + } srcdir := "./testdata/mariner" if err := CreateFrom(cf, tdir, srcdir); err != nil { diff --git a/pkg/chartutil/dependencies_test.go b/pkg/chartutil/dependencies_test.go index 10f7d250f..629856ccd 100644 --- a/pkg/chartutil/dependencies_test.go +++ b/pkg/chartutil/dependencies_test.go @@ -27,6 +27,7 @@ import ( ) func loadChart(t *testing.T, path string) *chart.Chart { + t.Helper() c, err := loader.Load(path) if err != nil { t.Fatalf("failed to load testdata: %s", err) diff --git a/pkg/chartutil/save.go b/pkg/chartutil/save.go index a456b206e..1c9d9e5e5 100644 --- a/pkg/chartutil/save.go +++ b/pkg/chartutil/save.go @@ -109,18 +109,11 @@ func Save(c *chart.Chart, outDir string) (string, error) { return "", errors.Errorf("location %s is not a directory", outDir) } - if c.Metadata == nil { - return "", errors.New("no Chart.yaml data") + if err := c.Validate(); err != nil { + return "", errors.Wrap(err, "chart validation") } - cfile := c.Metadata - if cfile.Name == "" { - return "", errors.New("no chart name specified (Chart.yaml)") - } else if cfile.Version == "" { - return "", errors.New("no chart version specified (Chart.yaml)") - } - - filename := fmt.Sprintf("%s-%s.tgz", cfile.Name, cfile.Version) + filename := fmt.Sprintf("%s-%s.tgz", c.Name(), c.Metadata.Version) filename = filepath.Join(outDir, filename) if stat, err := os.Stat(filepath.Dir(filename)); os.IsNotExist(err) { if err := os.MkdirAll(filepath.Dir(filename), 0755); !os.IsExist(err) { diff --git a/pkg/chartutil/save_test.go b/pkg/chartutil/save_test.go index 72b804c81..3ac13b476 100644 --- a/pkg/chartutil/save_test.go +++ b/pkg/chartutil/save_test.go @@ -35,8 +35,9 @@ func TestSave(t *testing.T) { c := &chart.Chart{ Metadata: &chart.Metadata{ - Name: "ahab", - Version: "1.2.3.4", + APIVersion: chart.APIVersionV1, + Name: "ahab", + Version: "1.2.3", }, Files: []*chart.File{ {Name: "scheherazade/shahryar.txt", Data: []byte("1,001 Nights")}, @@ -80,8 +81,9 @@ func TestSaveDir(t *testing.T) { c := &chart.Chart{ Metadata: &chart.Metadata{ - Name: "ahab", - Version: "1.2.3.4", + APIVersion: chart.APIVersionV1, + Name: "ahab", + Version: "1.2.3", }, Files: []*chart.File{ {Name: "scheherazade/shahryar.txt", Data: []byte("1,001 Nights")}, diff --git a/pkg/chartutil/testdata/albatross/Chart.yaml b/pkg/chartutil/testdata/albatross/Chart.yaml index eeef737ff..b5188fde0 100644 --- a/pkg/chartutil/testdata/albatross/Chart.yaml +++ b/pkg/chartutil/testdata/albatross/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: albatross description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast1/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mast1 description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6adf946f76033b6ee584affc12433cb78..61cb62051110b55f3d08213dc81dcf0b1c2d8e53 100644 GIT binary patch literal 252 zcmVDc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/dependent-chart-alias/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/dependent-chart-alias/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..3190136b050e62c628b3c817fd963ac9dc4a9e25 100644 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 1034 zcmV+l1oitLiwFRoe*ISf1MQf5Y!pQt$1j*vT_1mmq6v0Vv`Rzw_Pu%yR;*Eys*pfJ z2%2>6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L3Dc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mast1 description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6adf946f76033b6ee584affc12433cb78..61cb62051110b55f3d08213dc81dcf0b1c2d8e53 100644 GIT binary patch literal 252 zcmVDc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..3190136b050e62c628b3c817fd963ac9dc4a9e25 100644 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 1034 zcmV+l1oitLiwFRoe*ISf1MQf5Y!pQt$1j*vT_1mmq6v0Vv`Rzw_Pu%yR;*Eys*pfJ z2%2>6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L3Dc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..3190136b050e62c628b3c817fd963ac9dc4a9e25 100644 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 1034 zcmV+l1oitLiwFRoe*ISf1MQf5Y!pQt$1j*vT_1mmq6v0Vv`Rzw_Pu%yR;*Eys*pfJ z2%2>6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L3Dc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..3190136b050e62c628b3c817fd963ac9dc4a9e25 100644 GIT binary patch literal 967 zcmV;&133I2iwFR+9h6)E1MQb_y%a`Bd>#= zhbqf2w!b6}wZ9@rvIhtwzm?~C&+QLm+G2!l%`$_aUgS(@pdjdX3a%E}VXVc7`)dg( zL%IRN2}c1D3xoMi2w@WuWOMZ?5i&3FelBVyq_Ce_8fREdP%NDf<&d!wu3{&VUQNs{N%vK$Ha~k^gB2!0bO7r0ic0 zbqCp*X#j?=|H@GNONsuE)&Idbh>2MX(Z}|+=@*sLod*wS?A8Ugp#mMPuMO0NnZmos9_rr z3xpDL+otj~lRh?B4hHFTl+d5-8NBXmUXB~EyF^bx7m*+!*g>obczvGF|8xkWsHN8; z%#+wiWP{=2pC*98@$VNzzsll&G#D7&11-;D>HT0x|DV2?6}a~*p46@R|2l??e_8dX z@Bb>D3t~VC_*wjq2Dy!6J-_5ME%%J+xmsbK5a#qO>ZV?Wt`d|TDdrB^B&LqFr@lYdUA zs&4-JAg3&uc4dA0gv*bXU9QePa9^8wR{HovA)j@)JOAIkak0Jl)aKqA_3XLM#?H=V z-{tlG=xy^os=1Z><53;&+C4=zp|%rwv!)UyY=%k_t%Y|wNRQl`C6N_Z&S;S+~wb1=)2Uh_4I81`y>DO zoLPSt=btB&x{CUK`0DA&){efW_O36RxnsYZNT0r;JbTLR{H4M3C$8(Cee==aQ~Gbq p$`5v3?NB{4-j0XQHf literal 1034 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 LkUR>*0C)fZJ*e(i literal 3559 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 Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/frobnitz/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/frobnitz/charts/mariner-4.3.2.tgz index ea6e2a160b2cbbdf87ea7de414c687110c33fbd3..5648f6f6daa6b69765cb792f5926add825926dfc 100644 GIT binary patch literal 962 zcmV;z13mm7iwFRyACz1G1MQbxXcR{rzz+gJ7NkO|K16!MMWkA?*}eTZb5%on8bXs; zTaH9)Ax`e*a*O-b*|}hhHsC|6sZ=bjZ6z;NC>li(eXv3+5jBV+3c(J{0;`~^c-MiWUe|G+#V?eB#2v_+Eh#&|dMFHNZs@^CB!ACg%JQ@AFNsXB}MnCmDYVPVjaYD3sW1UXzsPK3-$e2`08u9QH43b2tGM`lbzPM8Cr z5@Z!Xy$upnd+ zU|nrfVubP<8g>A& zK%0B-I8>fy(#K9Kg+V?Yx%#s`L%@42z;TmS=k^qI5(xu>Q;0PIFV55XpAIpUwDdT_ zJh5jY8%!7fGyzPF{~$d93M~GM!Q|+kYVHx2e>ux{!2iuBzLL?w2J?(Cr*y-$73a2>tSQ$kP|LA{gIn*HE?W5Y zj@_dmb8q&p(t}G#WNgj2CH3gle_U$pZ9TOh^8Oq9`|B4EpT8o0+_e+;eQ;;zVB^N+ z$2txU^Uw7cTl<#JE7?$F5gKYuCv`%?GO@gtx8{{77>Z=Pt`_vw26fW;k4pXkZ( z{vrR!j)!}izo`2$xN@`k-GcJVy=NaioKyW_+2THXY5THyHCt;=jt0lOhS#r-Jn;Rx zw_8j5hi~kyPLIEPH*@>ew!+*58)^5`dw!xs=A8u@*TcujqMzS$h8KT9y7x*YjAylxG zijPi5J-JC^+c9gg$wK)+zjt;`kpyFX-PCR}f}X zimt7_4RRh{NxHxOLOuVN{^SP7%bd(R0JrvAxtE7re?!rs4-~wBi9#!a)C5*d!w38z z05u&%a-IQVCIZdLFhmB#&|2von(OoG@{UmsL=8;0JuTkfTD#J zj7-ZSzX5G7?S8yNNAV91y--W%=2EVe>qstze~}Q&?-#> zuu}aOd70=hcqPFr%aUFHMS-LBzZ|&0voNM4H4O3|U>Ev^rhq@x@`6A3TqDc4KucV; z0Qo3jmp}Nto6OJ^jA0bSR8p{u6}(-=@nqO8;MmkPx272F_7#&e64A&B+ucCk*FZv1 zkp-{`!nte9BI~IJ`I<752o%#%&VIgyaN3VK8D`P$axDg#gna;`B&0pT>bW=nlOY1* zrWS>W#fi1Z1}nusNdQapzrgXlNaMd8EROEQ%F|eSI9S&I7vIy|_G=c4+q?h0jg{hG zA~y@~|00QfQvXT2DAD*Y2Q_``9aW=mv^gq%yxzR$3Rksm_t|9c6P1B2ZJ|pS-VL5O zb#UNXMYJw}j*pxjSXcSXm!ZI&`y9Ph(YpP>~+H~63`El#sb7NE0k-M(1x6RLuUTxUh z`F`f-`kvp-yK?yKsk*_7?@Pu{t>Vd!LPrh4R4+4aq`gUNhR_vWXC>0KLieH~;_u diff --git a/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz b/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz index bc6be27aa6d1afe8959df123f150919b74e514e8..6929659514d35d2a2fe1098c1c097194378cc3b5 100644 GIT binary patch literal 3496 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 WNRS{wf&>XZ!T$k(as0gicmMzx5%RPE literal 3617 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 diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100755 --- a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: alpine description: Deploy a basic Alpine Linux pod version: 0.1.0 diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100755 --- a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast1/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mast1 description: A Helm chart for Kubernetes version: 0.1.0 diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6adf946f76033b6ee584affc12433cb78..61cb62051110b55f3d08213dc81dcf0b1c2d8e53 100755 GIT binary patch literal 252 zcmVDc zVQyr3R8em|NM&qo0PNJUs=_c72H?(liabH@pWIst-7YSIyL+rhEHrIN(t?QZE=F{y zgNRfS&$pa5Ly`mMk2OB%pV`*9knW7FlL-Joo@KED7*{C$d;N~z z37$S{+}wvSU9}|VtF|fRpv9Ve>8dWo|9?5B+RE}Y9CFh-x#(Bq8Vck^V=NUiPLCKa z8z5CF#JgK!4>;$4Fm+FUst4d+{(+nP|0&J+e}(;l^U4@w-{=?s0RR8vgVbLD3;+OM Cs&R<` literal 325 zcmV-L0lNMliwFRxBUV=c1MSw|YJ)Ho2Jl|{6o>BKov2ah-PkS$dy3RWS}syLpID4If6g{VtOEXtaBMKbNS zqRDw>=dBp!{dV&0PTP0q&C|N>lXXt-@itxw6Y{^`DeLnWW%?A)n7>C|RUhXsgbeu$ zF~=_IIe#g+SrMn$%(;J_|DcTCP^g0JS-aNm4}L!m8@i)M-5Y9`%Ajtv^fYa?9kkaj zJ8J8~B+f<7*=}6cSg*6cei`_&c>Y7mE>#=&?)@Lnf3ci@t|adNONjYC00000 X0000000000z?FFgy`&fL04M+ebFHRB diff --git a/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz b/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz index 3af333e76a3c268ce6d23f5ae8ba59387a75a38a..5648f6f6daa6b69765cb792f5926add825926dfc 100755 GIT binary patch literal 962 zcmV;z13mm7iwFRyACz1G1MQbxXcR{rzz+gJ7NkO|K16!MMWkA?*}eTZb5%on8bXs; zTaH9)Ax`e*a*O-b*|}hhHsC|6sZ=bjZ6z;NC>li(eXv3+5jBV+3c(J{0;`~^c-MiWUe|G+#V?eB#2v_+Eh#&|dMFHNZs@^CB!ACg%JQ@AFNsXB}MnCmDYVPVjaYD3sW1UXzsPK3-$e2`08u9QH43b2tGM`lbzPM8Cr z5@Z!Xy$upnd+ zU|nrfVubP<8g>A& zK%0B-I8>fy(#K9Kg+V?Yx%#s`L%@42z;TmS=k^qI5(xu>Q;0PIFV55XpAIpUwDdT_ zJh5jY8%!7fGyzPF{~$d93M~GM!Q|+kYVHx2e>ux{!2iuBzLL?w2J?(Cr*y-$73a2>tSQ$kP|LA{gIn*HE?W5Y zj@_dmb8q&p(t}G#WNgj2CH3gle_U$pZ9TOh^8Oq9`|B4EpT8o0+_e+;eQ;;zVB^N+ z$2txU^Uw7cTl<#JE7?$F5gKYuCv`%?GO@gtx8{{77>Z=Pt`_vw26fW;k4pXkZ( z{vrR!j)!}izo`2$xN@`k-GcJVy=NaioKyW_+2THXY5THyHCt;=jt0lOhS#r-Jn;Rx zw_8j5hi~kyPLIEPH*@6ZtiaDKCZKKh4VpUVhPw(Vq+5%p#1{`AAuCqVmyct4N85WAVyGp#n=>Wj1n4S z;p*((BjusRcz0-+&)sGA_I7u6_dCDuclIoZ4IANLpo|EDpsOnITP@cLl9Frl08!F) zQI-`+mw+HDk|+d#TF#Ryka7vc^i(WJNH|3z353tP9o;Mz`UG2>HDDfLsOK$)?XBLPk%{~bzM;vs=p>GasUXWKb3R2#PzqKg+d@d3b-h8BiKk1 z!?8nP9+;0z3q-t;0b&jY&8aZLHX_L7+7WjBjTBzyB`)E3N2#gdF81Xx{vn0>_f>Yw z69X6O|EeIVvL?{_R~21m{$B|S`eW3VGBC1`P25t)z?A;4N@wN2u8Au1|4I-=Nn}Tn z9Wjs_;sB@zxkP|w7!vHbE?oxzMoGsth=bE1kRT-KhJrz~0$NEE@e#)gp6Md~F2#hX z5qOaoSTy`MDJVw}6%*2EFGB=ep#M*v|4Cl`Gyg9?1^wHhnL;IZ{v1>Jzocru{;DFY zvZ8zXD}u!QzY@#>_o5g~nFQoUfIrdC4+@@}1r{d^7tl8ZOXofKKt27{yHO|#Vg~j8 zVi?2?l1PR9EFg|$)|=3d`%9eHLBxa@`N5JKXCMg;>;mF|u(#~G^mv9%zowlO21P6K z`p>0NjlUbqkkWIm|I;Rd5{?vdH?_;X^S7q6M{?qA4k~LcYf~K+m|0+Ut*A;=jm8X{kE*t&)SnE4r zM%A}7hwC=o@X3?4*}Ff!Z$VXtJ9Kn&ORKnfAk%L&Pun>D;)phO*KK{PKizeFOIz=n zy*o!wAB(P@-@O0Xt)Vxb?^^Wuz7^Z9s$0DG<(79l=RDI;yJg+Mmmb}CrBT z-!}KT=4?9KaOjJkYcgQjk@g!0$KO1e>6trl|4%m!{=B?u+4!Emw}w`2=pOv&TJ81s z9#V$gq1JEK%Ii?$Zt#20ucxXP^=-QPiQlpZ?i{{l`pMzO-oRHAJB1&st=E><&K!N! zdCK`A=yslR;D-|}568cpeRH7ta7WJ{hsPI;tY0|c!1o)c|1u-g@WGDm6TNL{-wPw* z(Wd>^e|==&5o^vX4U=!@9%pP?@baZ~f!i;ZpbQ3s!C){L34@aL6Zy=4um7%o;h5^s6tq{Oaa%5^Zwj&Iw2JjEAJ-r0iT##Vhen|? zM0#$Q92?G@#QyydIZ+cSs&F`GJQhEFKe+8O|9j_KPDA_vzM6k&<{#(ZnmOkGJM{JM zrZvZw$3kp;SUO(_BG=|B#DW&VbF9}J#yA520000000000000000Q^R8xfQyO04M+e DGPIJ| literal 292 zcmV+<0o(o`iwFP^#)Vq|1MSpHYQr!P24JssiXjI`C0kO!yOK?zr;wA$17s^ma-g@b zlLiMu(^5$Kp#Qg-jgUtg{dT@_Ifj%Tio20g&WxdBwf0zLso&}esj9TPw8m&nQdN3Z z6=d$$(pjIfi$g0eGAF*iZdkTjeX!5z9Ao_>+&KUF#>G5+ajn1gH-`JLT3?^PD%HjO zjaFqr^45*K=bz8Nb1m02z5=o2w20eX-iEHGM|xu4(&F$kXcZzo_YKF6GbgdnH&Z$Yy_fwpO| zSrjOWVm+3|60sD?l9Us}&3`XMSx%s|b&J>ziq&(GO$|9iiO+n=%S;FIVen0kF7P!L z>g>=ELWt>P60bst_Eii=m%HC_d^nm;FU~+5+>$>*=>xhm@oHV|&HYD!R{lhP&P$_b zuo|+IeBz`H@&6TkOR9jRIvKDu4!$cFe}tQ*+J|Iwt)|BK16gTD{>4VF*=~sVa28w)d|0wGg8BYv-qqfgS&OPO6ZZ zHjWOhV=w|OMxL{C_?Sx% zzO>f3;KApl6lBUQpumviQfKeLk-{KX1QtX7Y#epU&OuX#RdoUXw~m(bfl|1aA&38c z#o<^T9a{2yJ6JN};n ze^>uslT~I72n+Nwfvb3bLg0I;%LlL~Wx1&Wdme)Iv%#Q>AKd5hx@`~CXNq}Kx`h0U z^>@OV40*ZWi7BFdJ*jIVoE~lde|Ud&{lj}+qzBZokN*=fY{&n}wB!Ft5Cb|rU||)( zJ$lGUlfytMl)j4oA*UuWhj||RfsQcHmfUmB*vFh;{!~BCA(f7Ql3?7rsRcYBtjMjw z%c#hjw5lGWU#R0hvc#0tEwcoR4hst8e6#qo=F}XPQqj}Gm3=8Ku~Y$SvDm5%Ik9i^A#e;`HZiQiyBkB|M$hS&LG{ht9ST#$-&KR`}ShFIx8 zn|ViWC6ihh>Q4(d&FZbSwzqfY?IgA%@H_lgnotSIvfdq1ONd4 M|DYQzL;xfJ0JhWHHUIzs delta 432 zcmV;h0Z;zT2iF4#ABzYS010l0kq9$?mR;-9Fcijj-A{33Hwqft&8@Jz;VuLfg?ZzZ zr0r=NOp}tNoBQ^jq-^LE25xTrArFPT^qjoV^LwZjjdEz+>$fd8jvaU>C%0Bg$`^~! zlFr*SOY>7d%xAMan@`~82l<-@>$suquU+T-a!*7R+R}*L39VMJhIc4CD19k^K&=hD z9||-IsX!9NJ6yrBT#_9c8*);Xu{3$~HKP7eC;oR_4ru?20bJsLMzH_R|2%t>NB-}j zDQvLjgLE(!K*0W36fBv-msVJyhr`$P#}BXQb;q5<3Th$I2W+sE+#q;^7^?_+E{p}I zq40fcDOxBR9`sQK!{XrwNHOrdNk`Xv}7y2Z|u z@7iDHxvD(y*l_=|0ndAbwfI5Suoo2f>;;2QN*+L~km-*EJsOZgk`KYW)lV0RR8fN1@UH5C8zip4DLh diff --git a/pkg/downloader/testdata/signtest-0.1.0.tgz.prov b/pkg/downloader/testdata/signtest-0.1.0.tgz.prov index 94235399a..d325bb266 100644 --- a/pkg/downloader/testdata/signtest-0.1.0.tgz.prov +++ b/pkg/downloader/testdata/signtest-0.1.0.tgz.prov @@ -1,20 +1,21 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 +apiVersion: v1 description: A Helm chart for Kubernetes name: signtest version: 0.1.0 ... files: - signtest-0.1.0.tgz: sha256:dee72947753628425b82814516bdaa37aef49f25e8820dd2a6e15a33a007823b + signtest-0.1.0.tgz: sha256:e5ef611620fb97704d8751c16bab17fedb68883bfb0edc76f78a70e9173f9b55 -----BEGIN PGP SIGNATURE----- -wsBcBAEBCgAQBQJXomNHCRCEO7+YH8GHYgAALywIAG1Me852Fpn1GYu8Q1GCcw4g -l2k7vOFchdDwDhdSVbkh4YyvTaIO3iE2Jtk1rxw+RIJiUr0eLO/rnIJuxZS8WKki -DR1LI9J1VD4dxN3uDETtWDWq7ScoPsRY5mJvYZXC8whrWEt/H2kfqmoA9LloRPWp -flOE0iktA4UciZOblTj6nAk3iDyjh/4HYL4a6tT0LjjKI7OTw4YyHfjHad1ywVCz -9dMUc1rPgTnl+fnRiSPSrlZIWKOt1mcQ4fVrU3nwtRUwTId2k8FtygL0G6M+Y6t0 -S6yaU7qfk9uTxkdkUF7Bf1X3ukxfe+cNBC32vf4m8LY4NkcYfSqK2fGtQsnVr6s= -=NyOM +wsBcBAEBCgAQBQJcoosfCRCEO7+YH8GHYgAA220IALAs8T8NPgkcLvHu+5109cAN +BOCNPSZDNsqLZW/2Dc9cKoBG7Jen4Qad+i5l9351kqn3D9Gm6eRfAWcjfggRobV/ +9daZ19h0nl4O1muQNAkjvdgZt8MOP3+PB3I3/Tu2QCYjI579SLUmuXlcZR5BCFPR +PJy+e3QpV2PcdeU2KZLG4tjtlrq+3QC9ZHHEJLs+BVN9d46Dwo6CxJdHJrrrAkTw +M8MhA92vbiTTPRSCZI9x5qDAwJYhoq0oxLflpuL2tIlo3qVoCsaTSURwMESEHO32 +XwYG7BaVDMELWhAorBAGBGBwWFbJ1677qQ2gd9CN0COiVhekWlFRcnn60800r84= +=k9Y9 -----END PGP SIGNATURE----- \ No newline at end of file diff --git a/pkg/downloader/testdata/signtest/Chart.yaml b/pkg/downloader/testdata/signtest/Chart.yaml index 90964b44a..f1f73723a 100644 --- a/pkg/downloader/testdata/signtest/Chart.yaml +++ b/pkg/downloader/testdata/signtest/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: signtest version: 0.1.0 diff --git a/pkg/downloader/testdata/signtest/alpine/Chart.yaml b/pkg/downloader/testdata/signtest/alpine/Chart.yaml index e45d7326a..eec261220 100644 --- a/pkg/downloader/testdata/signtest/alpine/Chart.yaml +++ b/pkg/downloader/testdata/signtest/alpine/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: Deploy a basic Alpine Linux pod home: https://helm.sh/helm name: alpine diff --git a/pkg/lint/rules/testdata/albatross/Chart.yaml b/pkg/lint/rules/testdata/albatross/Chart.yaml index c108fa5e5..21124acfc 100644 --- a/pkg/lint/rules/testdata/albatross/Chart.yaml +++ b/pkg/lint/rules/testdata/albatross/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: albatross description: testing chart version: 199.44.12345-Alpha.1+cafe009 diff --git a/pkg/lint/rules/testdata/badchartfile/Chart.yaml b/pkg/lint/rules/testdata/badchartfile/Chart.yaml index dbb4a1501..b64052eb9 100644 --- a/pkg/lint/rules/testdata/badchartfile/Chart.yaml +++ b/pkg/lint/rules/testdata/badchartfile/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes version: 0.0.0 home: "" diff --git a/pkg/lint/rules/testdata/badvaluesfile/Chart.yaml b/pkg/lint/rules/testdata/badvaluesfile/Chart.yaml index bed845249..632919d03 100644 --- a/pkg/lint/rules/testdata/badvaluesfile/Chart.yaml +++ b/pkg/lint/rules/testdata/badvaluesfile/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: badvaluesfile description: A Helm chart for Kubernetes version: 0.0.1 diff --git a/pkg/lint/rules/testdata/goodone/Chart.yaml b/pkg/lint/rules/testdata/goodone/Chart.yaml index de05463ca..cb7a4bf20 100644 --- a/pkg/lint/rules/testdata/goodone/Chart.yaml +++ b/pkg/lint/rules/testdata/goodone/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: goodone description: good testing chart version: 199.44.12345-Alpha.1+cafe009 diff --git a/pkg/provenance/sign_test.go b/pkg/provenance/sign_test.go index d74e23887..1f4d2d232 100644 --- a/pkg/provenance/sign_test.go +++ b/pkg/provenance/sign_test.go @@ -63,13 +63,14 @@ const ( ) // testMessageBlock represents the expected message block for the testdata/hashtest chart. -const testMessageBlock = `description: Test chart versioning +const testMessageBlock = `apiVersion: v1 +description: Test chart versioning name: hashtest version: 1.2.3 ... files: - hashtest-1.2.3.tgz: sha256:8e90e879e2a04b1900570e1c198755e46e4706d70b0e79f5edabfac7900e4e75 + hashtest-1.2.3.tgz: sha256:c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888 ` func TestMessageBlock(t *testing.T) { @@ -100,7 +101,7 @@ func TestParseMessageBlock(t *testing.T) { if hash, ok := sc.Files["hashtest-1.2.3.tgz"]; !ok { t.Errorf("hashtest file not found in Files") - } else if hash != "sha256:8e90e879e2a04b1900570e1c198755e46e4706d70b0e79f5edabfac7900e4e75" { + } else if hash != "sha256:c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888" { t.Errorf("Unexpected hash: %q", hash) } } diff --git a/pkg/provenance/testdata/hashtest-1.2.3.tgz b/pkg/provenance/testdata/hashtest-1.2.3.tgz index 1e89b524f4fc89e4a483ef8dc4fefdc79d64786f..7bbc533cae13f1b34f023d7d19f0f30214be2768 100644 GIT binary patch delta 357 zcmV-r0h<2N1CIj;ABzYS00000kq9+^YU3~vKy%ht%#zD4ELzziG32_vw~)|lQS7NC zD$7C|I}N4(UgD6nm_jH?Q%dzNvW3OW;CW+f88u;~fB&@%#5c0GqjMvK5XE%buR@67 zDzg0by5G<8Vw#OWoIR6wXd}rm5+}zR7WYk%-rQn{rg3xVGFD+MgYnegFEJ8-l-s_5 zZug9FiaA;19QJ*~y8Y>l=X}Dxx}LIOezPxK#m3-J$?e|-{PqFw%_CN@ zHl*R#9}d^fZlH1f$!$vDF@QA=IpbH0y9G4?8CQnV$Vwy(ek4$A9Pk6;F0i(Ac#6HrP$vQBl|~o+N8u zn_!xhB;DM9?@Oyirm(~2hL8_~X6Z|tviJF}Qg|8Ahqv#gaDkmfr=M<3POP4v$0Kom z%z4h|@i@VvXo4LfQCsA40)0iCCRIc3_+ zhz{5At5LF_XV$=3!OHB>50JQu+5dyk1Nwgw0GIqPczNc3$;%@7e-9S0!A1<4j2{~S z8tZ1)S+;mT^@|l1DIq`_ClmPPN85y!AaU`oCQM;Xmie|9h~2&rxS*Mqj7j zAC3|Y><6W5`u`_`t8b#6d>zxk4}EW4paJ!ahF04>P$*QAs$YXcvRfUZ`9c0RFH9YU z$5zCb4S3l*Y}9v(hNGgo7q1w6GWrD8j4R`ophpK<8HyRU*?!#y+FQmKS`|`MBoc|l S)%*wm0RR8!>e!b65C8ybgVg*0 diff --git a/pkg/provenance/testdata/hashtest-1.2.3.tgz.prov b/pkg/provenance/testdata/hashtest-1.2.3.tgz.prov new file mode 100755 index 000000000..3a788cd2e --- /dev/null +++ b/pkg/provenance/testdata/hashtest-1.2.3.tgz.prov @@ -0,0 +1,21 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +apiVersion: v1 +description: Test chart versioning +name: hashtest +version: 1.2.3 + +... +files: + hashtest-1.2.3.tgz: sha256:c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888 +-----BEGIN PGP SIGNATURE----- + +wsBcBAEBCgAQBQJcon2ICRCEO7+YH8GHYgAASEAIAHD4Rad+LF47qNydI+k7x3aC +/qkdsqxE9kCUHtTJkZObE/Zmj2w3Opq0gcQftz4aJ2G9raqPDvwOzxnTxOkGfUdK +qIye48gFHzr2a7HnMTWr+HLQc4Gg+9kysIwkW4TM8wYV10osysYjBrhcafrHzFSK +791dBHhXP/aOrJQbFRob0GRFQ4pXdaSww1+kVaZLiKSPkkMKt9uk9Po1ggJYSIDX +uzXNcr78jTWACqkAtwx8+CJ8yzcGeuXSVNABDgbmAgpY0YT+Bz/UOWq4Q7tyuWnS +x9BKrvcb+Gc/6S0oK0Ffp8K4iSWYp79uH1bZ2oBS1yajA0c5h5i7qI3N4cabREw= +=YgnR +-----END PGP SIGNATURE----- \ No newline at end of file diff --git a/pkg/provenance/testdata/hashtest.sha256 b/pkg/provenance/testdata/hashtest.sha256 index 829031f9d..05173edf8 100644 --- a/pkg/provenance/testdata/hashtest.sha256 +++ b/pkg/provenance/testdata/hashtest.sha256 @@ -1 +1 @@ -8e90e879e2a04b1900570e1c198755e46e4706d70b0e79f5edabfac7900e4e75 hashtest-1.2.3.tgz +c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888 hashtest-1.2.3.tgz diff --git a/pkg/provenance/testdata/hashtest/Chart.yaml b/pkg/provenance/testdata/hashtest/Chart.yaml index 342631ef8..6edf5f8b6 100644 --- a/pkg/provenance/testdata/hashtest/Chart.yaml +++ b/pkg/provenance/testdata/hashtest/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: Test chart versioning name: hashtest version: 1.2.3 diff --git a/pkg/provenance/testdata/msgblock.yaml b/pkg/provenance/testdata/msgblock.yaml index 0fdbda8ce..c16293ffc 100644 --- a/pkg/provenance/testdata/msgblock.yaml +++ b/pkg/provenance/testdata/msgblock.yaml @@ -1,7 +1,8 @@ +apiVersion: v1 description: Test chart versioning name: hashtest version: 1.2.3 ... files: - hashtest-1.2.3.tgz: sha256:8e90e879e2a04b1900570e1c198755e46e4706d70b0e79f5edabfac7900e4e75 + hashtest-1.2.3.tgz: sha256:c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888 diff --git a/pkg/provenance/testdata/msgblock.yaml.asc b/pkg/provenance/testdata/msgblock.yaml.asc index 5a34d6c52..b4187b742 100644 --- a/pkg/provenance/testdata/msgblock.yaml.asc +++ b/pkg/provenance/testdata/msgblock.yaml.asc @@ -1,21 +1,22 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 +apiVersion: v1 description: Test chart versioning name: hashtest version: 1.2.3 ... files: - hashtest-1.2.3.tgz: sha256:8e90e879e2a04b1900570e1c198755e46e4706d70b0e79f5edabfac7900e4e75 + hashtest-1.2.3.tgz: sha256:c6841b3a895f1444a6738b5d04564a57e860ce42f8519c3be807fb6d9bee7888 -----BEGIN PGP SIGNATURE----- -Comment: GPGTools - https://gpgtools.org -iQEcBAEBCgAGBQJXlp8KAAoJEIQ7v5gfwYdiE7sIAJYDiza+asekeooSXLvQiK+G -PKnveqQpx49EZ6L7Y7UlW25SyH8EjXXHeJysDywCXF3w4luxN9n56ffU0KEW11IY -F+JSjmgIWLS6ti7ZAGEi6JInQ/30rOAIpTEBRBL2IueW3m63mezrGK6XkBlGqpor -C9WKeqLi+DWlMoBtsEy3Uk0XP6pn/qBFICYAbLQQU0sCCUT8CBA8f8aidxi7aw9t -i404yYF+Dvc6i4JlSG77SV0ZJBWllUvsWoCd9Jli0NAuaMqmE7mzcEt/dE+Fm2Ql -Bx3tr1WS4xTRiFQdcOttOl93H+OaHTh+Y0qqLTzzpCvqmttG0HfI6lMeCs7LeyA= -=vEK+ +iQFJBAEBCgAzFiEEXmFTibU8o38O5gvThDu/mB/Bh2IFAlyiiDcVHGhlbG0tdGVz +dGluZ0BoZWxtLnNoAAoJEIQ7v5gfwYdiILAH/2f3GMVh+ZY5a+szOBudcuivjTcz +0Im1MwWQZfB1po3Yu7smWZbf5tJCzvVpYtvRlfa0nguuIh763MwOh9Q7dBXOLAxm +VCxqHm3svnNenBNfOpIygaMTgMZKxI4RrsKBgwPOTmlNtKg2lVaCiJAI30TXE6bB +/DwEYX0wmTssrAcSpTzOOSC+zHnPKew+5A3SY3ms+gAtVAcLepmJjI7RS7RhQxDl +AG+rWYis5gpDrk3U9OG1EOxqbftOAMqUl/kwI9eu5cPouN85rWwMe5pvHAvuyr/y +caYdlXDHTZsXmBuvfiUX6gqXtrpPCyKTCP+RzNf3+bXJM8m3u3gbMjGvKjU= +=vHcU -----END PGP SIGNATURE----- diff --git a/pkg/registry/cache.go b/pkg/registry/cache.go index 96911c3db..39dec1467 100644 --- a/pkg/registry/cache.go +++ b/pkg/registry/cache.go @@ -74,6 +74,7 @@ func (cache *filesystemCache) LayersToChart(layers []ocispec.Descriptor) (*chart if err != nil { return nil, err } + metadata.APIVersion = chart.APIVersionV1 metadata.Name = name metadata.Version = version @@ -96,8 +97,8 @@ func (cache *filesystemCache) LayersToChart(layers []ocispec.Descriptor) (*chart func (cache *filesystemCache) ChartToLayers(ch *chart.Chart) ([]ocispec.Descriptor, error) { // extract/separate the name and version from other metadata - if ch.Metadata == nil { - return nil, errors.New("chart does not contain metadata") + if err := ch.Validate(); err != nil { + return nil, err } name := ch.Metadata.Name version := ch.Metadata.Version @@ -115,7 +116,11 @@ func (cache *filesystemCache) ChartToLayers(ch *chart.Chart) ([]ocispec.Descript // TODO: something better than this hack. Currently needed for chartutil.Save() // If metadata does not contain Name or Version, an error is returned // such as "no chart name specified (Chart.yaml)" - ch.Metadata = &chart.Metadata{Name: "-", Version: "-"} + ch.Metadata = &chart.Metadata{ + APIVersion: chart.APIVersionV1, + Name: "-", + Version: "0.1.0", + } destDir := mkdir(filepath.Join(cache.rootDir, "blobs", ".build")) tmpFile, err := chartutil.Save(ch, destDir) defer os.Remove(tmpFile) diff --git a/pkg/registry/client_test.go b/pkg/registry/client_test.go index aa3770ac1..fd6285c15 100644 --- a/pkg/registry/client_test.go +++ b/pkg/registry/client_test.go @@ -93,8 +93,9 @@ func (suite *RegistryClientTestSuite) Test_0_SaveChart() { // valid chart ch := &chart.Chart{} ch.Metadata = &chart.Metadata{ - Name: "testchart", - Version: "1.2.3", + APIVersion: "v1", + Name: "testchart", + Version: "1.2.3", } err = suite.RegistryClient.SaveChart(ch, ref) suite.Nil(err) diff --git a/pkg/repo/repotest/testdata/examplechart-0.1.0.tgz b/pkg/repo/repotest/testdata/examplechart-0.1.0.tgz index aec86c64002af0b6d3d114e15de120306ba24baa..c5ea741eb90fec6a94653cfde780d697f33c4439 100644 GIT binary patch delta 460 zcmV;-0W3#r84UfIa+aL@l9O-J$M2f#!A zD>Xav|6H9HqyLY==P#qE|1$Udmn|8q8|Rr$Imbi(&x`p_{-3GQ|HmMM_m~o~i;z6* z|2=G5a!_{K)Y>%=u-aflQHl(IKD0VQ>_YIIBE*)AfyVd}ET*c}u6Yhj29xdy0;cv( z9$hUmaMa-Lb^-qfrnSDI8n!yM@ZU2D@0_^>?}jgTB|#ttqa8^hua+N|$uo%z7T#L# zV6|96tvL$W=#&p}U%rs#C(eg>NVHA93x{s(UH)UB601!YV66>BF_m#U8^lzWxDivC zY!K70B7+sO_FaTGSFfUwf&DdANl0B2=KJ^9Uymp0$jHc3;#&X!0RR7Fckh`15C8xc CM&kJZ delta 518 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 LkUR>*0C)fZJ*e(i literal 1165 zcmV;81akWyiwFQnKvq`(1MS_vZzDw%2k^NoC`OP&&`=HzqPffdwvAkIy5w|M90laK z<`5ct$MGt=JFDHZ5*WENSk8E~!9LH%ln_{?Zjh2oVjFvUwdTp;61hm5!jvM&xHWSS= zd`%N&VPsA(C6UH-OVb;ud~Q2x*6%MlPW^jKmKQ{S-2c|Cfy|9{B$L=G4)rR}LGMQ^ z2p09fKkk3G6}W-xder}I&+(XWR{0_px#a!dbw0d%PqeL|dhjY^{u`YKgYAb`fB2WN zB%*gCj#a94F5_t7F_OB073-di7oY3XV+XYNbWexMF7lqe7nwoXwR$?S_sg!zQ)N_P zQ|rXe_V?^uW!k1KCX_}F9~F_&`H@ZIH#OaA08hv7%HJe_i>@^Nt#@8wzUL07)y>A6 z;`P_=pZBW*00000fHgAN74{h|uhx&R)ypf#mH+?%00000aB<0yv9C55`-`Ib|Nr>@ z{~ucUjpApDpD4bk_?F^piZ3V*DL$gOLve%REsB?}jgIrj#(Dlm00000003|a4RoS9 zVqi?xv28W`=o6V_v8q0D&bEddi`lJqUu(N7b5`gw@2L(GLM1YaJ0jIx9Ui?qdxTV0 z2mgRhp;IMx;zCWIP<@VlZu8xN5_f2)*i|xN)HpR1Dlak1RGi@8mcO>OZnocEaiF zKb)55)%71O)PJnQ@%oP^FLxgN{`SMG*Z)TS2fzyh^&bEL0001&9_l{;00000003Tm zRsBb~!Pu`0>OX#@_>STmiZ3ZXuWLU(rnptter(jWAAi=z`33bK00000003~77S?wN zaoP%xWi=kvQRY^8EUxpIK4nRzN7ZOl>rt&usy(U)%j!KE!-9`38D|4&xz}CK51Nht zUH@^0AD>@d|KT`+=TE=?BWMc8ZTY^7`j2&(9S;12(Zgqpjre3#^660J(;>|3am}9{ z?tE@W@P#?V=OrCqlBc}RX1+A%`J%~!pLdt6)g=Gl-?_PcZ^uf))t}>}{P%o!l>dIy z3H&Pmo2?e|e=Rn}?Q!1nNxr9|&Ii#O{#D?7b5q$P#yr7|4QBQIu7qQTuIm zpkkdRDm9$n*0~5r8&oc$w6AZ7LMdTr4lp{~imQEMTGwS=t}Hx1ll(V|`chU!cPl@~ zDZl^infz}BPJr)!TZc*iAIP{=#hF|Ho;3fve*4(>|FxPeAM^h@Y>Jy=)b*ktRTI7* zUZ@q-Nf;Dzc9FB9oftln8|r@5W37wdfu%;L|xIrIN` z%`(|)rh=35pKbtW=YP*>`vLNQ9q0xu*5dJFYnZ%G=pwBz%h-qp-Pgro>TpOE diff --git a/pkg/repo/testdata/repository/sprocket-1.1.0.tgz b/pkg/repo/testdata/repository/sprocket-1.1.0.tgz index 595e9cc0397068b278d521615b97ae3319eb3623..48d65f491545e344400446040aae6b2c855a6a68 100644 GIT binary patch delta 374 zcmV-+0g3*u2A%^5ABzYS00000kq9$?l+BLXFc5$_`zc1;2~GlylvAau5~p5@dLQCJ zvG7l18z`l``-&jKDnjD0EW3;RU7U>VcqZ~UzHzo%Q5gTI(S>A(S`F?E=bRVQX*+Vx z`y0Zz<1zh3-6%>btJ#WnTkC``*$9@-E{qKS*r?mdMj)&}!8A$}P#SXW zQqm|@2{kGG{q^Sn3?5IK*90?C8s>!hvfkK*6}ziDep^k}5d2i0*eTQ{u{oETCTYUi zNB{g!KDE{G-UpcLF01$>X_~7@ zNK^<>7O0i!nIXF?G+N`P`X&xh>FUt}H*kGx)xYiQr_TQ&7X|8{ zG5}na|De^G%YQ4_-l6<2!zSBh<5$o6i9i<0Dy+KP=_i9i@p5QzC%JOUtg(kYMaR+@ zR-;CpL#J$KNmdRY`$#7zxI%{fk}2cmT!-F3hB87= ztI!)HCN6sA|MlLm=%LDgu$+p@Rf3lf2cE)QdIq(LxZ%~2PK;C|ZyD=XLT=2fIsYU zKc6>N{7{4tLI@#*5JG-4v&E|ym9j#kYSgo>USCSD#}#N3iiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PK{_ZsITyfI0gqM%)P|fsK^YN~@JP?PXE#Lp&%J{)ub@rIdHC z2qIJw5{FXSB7YYrV>_OS{Ee@jEteFAe=2k#*`ijxTf;f$`DD_Job&F;v%H-<#z$$M zk9)vxp2-DPKA`LI51-X7?uUT2d?M$iH3h6kOpq^~tV8oYtE30%0pWB@`mC~=3aCP; zi{X%-QP+x+(rUJ(?Z!Ic3pRj-vvVWE3mddM*#LwUD40fR0!l-!SxOqEDxe~zf4~16 zfWgB_vx;C!O2dp$pVu2Zw_J_fI|Khv6Z2Fy^0zu2q9Dzo2^^=QHIGE=e;{2e4CLFVB-FQQ z1y}taryc(%SXZNE)pp|do>SG% zl2mzzQk&%B;GDay78|AQGUc{YrWMSxUAyHt+-bXvTaIIK!de$NrkXs{B88zuLhEj> zy@5<;>VaCXx1gQsKI(K$$j0+;JRFEr8$%I=Ms}Pmvk!P4ZO556|IP9ITW!a(ZOexF zcP-Z?j4yK#^SI*k-{r5KK4Y%o6os3Fgm*fx@9!OK?))Ys3gBskp^TMEMHtL&BdQdP zPY4pO5Av?zsmMIcyE2WXmYE6Kk(nI!%~U4Jgc|J&Ek>m* z&?+68wf#=acj?avLDrsJ_jd1HCr#TLh1KoGU3UA{%gY`Wf*=TjAP9mWD?}$70dF~|^LX8 zqsnZ$*6b-|c121um8YKU5XNLAg0RD4)m8rR!E_6;C>nnOU8q>HM`0!>UnsV*&s5(Z zNcIFSvVAEc0?M%lk!jWe6<_)A>wK4ux41*Lm#S_Y=(prh4v$spgWeHn2P*C`%dibj ze3^M^kmym>{vgO0d_>(wgOnZDZLVVf{NnQ;oI6mc&VM+z3#g?`9JXb7H^mS?{GZ-w-W04KN4XsvkO@O&Wrz6(>-(kv)ytr{;z~>w#Uk; zXT2bl%u}N{ofVm0(9cs*tOW)wBXFY#!R$HY8#I&NXqkXWTwN^cSr8ZNMR~1pr9$ai zG9&(vbB0cq6AI4re|Q0$j{i1yn;iXr6~OyfsMyJgF>>B_%$Gfphnh9uwJ!7E$` Z2!bF8f*=TjAPBPd`~~*!Et~*Q004wYsG diff --git a/pkg/repo/testdata/repository/universe/zarthal-1.0.0.tgz b/pkg/repo/testdata/repository/universe/zarthal-1.0.0.tgz index 90cb34bd5f36439ee2e986c21c766b55a4442ec8..6f1e8564cd728f264582d903e071ed327200bc94 100644 GIT binary patch literal 411 zcmV;M0c8FkiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PK~`ZsITyfI0gqM%)PwSwPBZrPWHDdMWCCz=LAdKap*qKza9y zl!Pj+#G#b7$lt}z#Exg8e3LD@P@wAnE6{~xgIaYi4(FVYhr?>*oVQ1wjnigc#nZuv zXC2^|Pvt#JAJBF9r_X8^_e;Q1K9KX$njBUs6XfSkmZ7?y7Se-8fv^Gv(0?UkOmNrx1u?>MD2edT`COZn^_Xd3$=o? z{{I=Y{2vbD|NlBnNGS`uT~c}e41yN8Q~|nc>y+s3_fhvqBoetvUIG9B|NpK_u)qKi F001%(!)E{h literal 1121 zcmV-n1fKgJiwFR8Z?Rbb1MQs8ZsSB8$7fgK5{X>|Jiw41SM|TK<0R5btPr9cKu8q0 z>}6t48mo3DvYr0fW#I)la^c9GJ7?a27vK#zz#H&$5+{w*B)c?qx9#_%{xr77o*CEq z{h6`#Gt95#*@2RwN;AXmIBj9RkZC@UG20my(Q@5MNmNVA78bLG?YU0N7oNu~+Yz46 z_}T7;u%2<2%an#vM_+Ft!s1CDCF-f|S#I01+>S6hZQpkt+jSaFhs%q#o@E=t>-etS zc8khjwbGkb-t>Ke*JGya=5_W_=(u0#HL1GqP4(Vh*n^2JSk`|bT$^$4ItNu!>c33n zFqFZD^TdeL`(Fo+Rk84* z(;%M^RE`-|i+qCRbObE>oubtL9jf~Z+w8yas`~Fatrp|8=;S@O|Dno)G#cfR9(MWR zAj&xXNk02oGzL0RT|UV3QP(upnM_8pG6J16j@9|8PQ$F**ysIJ_l8maf;P+R_Iap7 z88#9b4RaFu-xX&n+K;I{6(=8GY>o4wEIK+ID1Jbd{7}hcasE*Eba;O06<^Z;^-%Fo z<4iTChsrUWP^XjIvJK0yV7D%1t^Yrf@mOU$u?SoJzrP#{7RJHG{I3>7#s4qQ|EiI| za_voz9bBDK|97bFD{S-sw(u+Z@3|iQe=Y3sXMFnXc|VF35A?)eXT?T8IvS_42n~#x zYi$ZIz_gjvI`ClCzs5sXAxh2$ra z6O!j7pOHKv*&})9@wA=49^K>}0RR9100000xPL6CFI$()jO|YjX3Iy-zSd?>rYzIr zG*Df}*QX<+7FN@dEiS0$JDZ=rl<$mPOqRxG8PupOKXGS^OlxeOevMtoa^@J;x_oYB n8%;Ltc-|%e00000000000000000000fV;terNp1g0C)fZNQq8~