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 575b27128..3c9c24d76 100644 Binary files a/cmd/helm/testdata/testcharts/compressedchart-0.1.0.tgz and b/cmd/helm/testdata/testcharts/compressedchart-0.1.0.tgz differ diff --git a/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz b/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz index ba96a80c9..16a644a79 100644 Binary files a/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz and b/cmd/helm/testdata/testcharts/compressedchart-0.2.0.tgz differ diff --git a/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz b/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz index 89776bfa8..051bd6fd9 100644 Binary files a/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz and b/cmd/helm/testdata/testcharts/compressedchart-0.3.0.tgz differ 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 8618e91d7..5d8e46a50 100644 Binary files a/cmd/helm/testdata/testcharts/reqtest-0.1.0.tgz and b/cmd/helm/testdata/testcharts/reqtest-0.1.0.tgz differ diff --git a/cmd/helm/testdata/testcharts/reqtest/Chart.yaml b/cmd/helm/testdata/testcharts/reqtest/Chart.yaml index e38826af3..07b6e2c97 100644 --- a/cmd/helm/testdata/testcharts/reqtest/Chart.yaml +++ b/cmd/helm/testdata/testcharts/reqtest/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: reqtest version: 0.1.0 diff --git a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart/Chart.yaml b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart/Chart.yaml index c3813bc8c..356135537 100644 --- a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart/Chart.yaml +++ b/cmd/helm/testdata/testcharts/reqtest/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/reqtest/charts/reqsubchart2/Chart.yaml b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart2/Chart.yaml index 9f7c22a71..5b9277370 100644 --- a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart2/Chart.yaml +++ b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart2/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: reqsubchart2 version: 0.2.0 diff --git a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz index 84b0fb65e..37962b0ab 100644 Binary files a/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz and b/cmd/helm/testdata/testcharts/reqtest/charts/reqsubchart3-0.2.0.tgz differ diff --git a/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz b/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz index 6de9d988d..c74e5b0ef 100644 Binary files a/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz and b/cmd/helm/testdata/testcharts/signtest-0.1.0.tgz differ 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 983820e06..b2b76a83c 100644 Binary files a/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz and b/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz differ diff --git a/pkg/chart/loader/testdata/frobnitz/charts/alpine/Chart.yaml b/pkg/chart/loader/testdata/frobnitz/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chart/loader/testdata/frobnitz/charts/alpine/Chart.yaml +++ b/pkg/chart/loader/testdata/frobnitz/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/charts/alpine/charts/mast1/Chart.yaml b/pkg/chart/loader/testdata/frobnitz/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chart/loader/testdata/frobnitz/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chart/loader/testdata/frobnitz/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/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chart/loader/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6a..61cb62051 100644 Binary files a/pkg/chart/loader/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chart/loader/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz differ 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 88c24d822..3190136b0 100644 Binary files a/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz and b/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz b/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz index 513bfca1a..a9d4c11d8 100644 Binary files a/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz and b/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz differ 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 ced5a4a6a..61cb62051 100755 Binary files a/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chart/loader/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..3190136b0 100755 Binary files a/pkg/chart/loader/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz and b/pkg/chart/loader/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chart/loader/testdata/genfrob.sh b/pkg/chart/loader/testdata/genfrob.sh index 8f2cddec1..35fdd59f2 100755 --- a/pkg/chart/loader/testdata/genfrob.sh +++ b/pkg/chart/loader/testdata/genfrob.sh @@ -6,7 +6,9 @@ tar -zcvf mariner/charts/albatross-0.1.0.tgz albatross echo "Packing mariner into frobnitz" tar -zcvf frobnitz/charts/mariner-4.3.2.tgz mariner +tar -zcvf frobnitz_backslash/charts/mariner-4.3.2.tgz mariner # Pack the frobnitz chart. echo "Packing frobnitz" tar --exclude=ignore/* -zcvf frobnitz-1.2.3.tgz frobnitz +tar --exclude=ignore/* -zcvf frobnitz_backslash-1.2.3.tgz frobnitz_backslash diff --git a/pkg/chart/loader/testdata/mariner/Chart.yaml b/pkg/chart/loader/testdata/mariner/Chart.yaml index e2efb7f99..92dc4b390 100644 --- a/pkg/chart/loader/testdata/mariner/Chart.yaml +++ b/pkg/chart/loader/testdata/mariner/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mariner description: A Helm chart for Kubernetes version: 4.3.2 diff --git a/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz b/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz index fa8ef5aca..128ef82f7 100644 Binary files a/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz and b/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz differ 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 ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-alias/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..3190136b0 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-alias/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/dependent-chart-alias/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-helmignore/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-helmignore/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-helmignore/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-helmignore/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-helmignore/charts/alpine/charts/mast2-0.1.0.tgz differ 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 ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..3190136b0 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/dependent-chart-no-requirements-yaml/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-with-all-in-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-with-all-in-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-with-all-in-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-with-all-in-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..3190136b0 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/dependent-chart-with-all-in-requirements-yaml/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-with-mixed-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-with-mixed-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/dependent-chart-with-mixed-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-with-mixed-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..3190136b0 100644 Binary files a/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/dependent-chart-with-mixed-requirements-yaml/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/frobnitz-1.2.3.tgz b/pkg/chartutil/testdata/frobnitz-1.2.3.tgz index a8ba8ec6f..8731dce02 100644 Binary files a/pkg/chartutil/testdata/frobnitz-1.2.3.tgz and b/pkg/chartutil/testdata/frobnitz-1.2.3.tgz differ diff --git a/pkg/chartutil/testdata/frobnitz/charts/alpine/Chart.yaml b/pkg/chartutil/testdata/frobnitz/charts/alpine/Chart.yaml index 4cc36dca5..79e0d65db 100644 --- a/pkg/chartutil/testdata/frobnitz/charts/alpine/Chart.yaml +++ b/pkg/chartutil/testdata/frobnitz/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/charts/alpine/charts/mast1/Chart.yaml b/pkg/chartutil/testdata/frobnitz/charts/alpine/charts/mast1/Chart.yaml index 171e36156..1c9dd5fa4 100644 --- a/pkg/chartutil/testdata/frobnitz/charts/alpine/charts/mast1/Chart.yaml +++ b/pkg/chartutil/testdata/frobnitz/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/charts/alpine/charts/mast2-0.1.0.tgz b/pkg/chartutil/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz index ced5a4a6a..61cb62051 100644 Binary files a/pkg/chartutil/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/frobnitz/charts/alpine/charts/mast2-0.1.0.tgz differ 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 ea6e2a160..5648f6f6d 100644 Binary files a/pkg/chartutil/testdata/frobnitz/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/frobnitz/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz b/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz index bc6be27aa..692965951 100644 Binary files a/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz and b/pkg/chartutil/testdata/frobnitz_backslash-1.2.3.tgz differ 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 ced5a4a6a..61cb62051 100755 Binary files a/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz and b/pkg/chartutil/testdata/frobnitz_backslash/charts/alpine/charts/mast2-0.1.0.tgz differ 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 3af333e76..5648f6f6d 100755 Binary files a/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz and b/pkg/chartutil/testdata/frobnitz_backslash/charts/mariner-4.3.2.tgz differ diff --git a/pkg/chartutil/testdata/genfrob.sh b/pkg/chartutil/testdata/genfrob.sh index 8f2cddec1..35fdd59f2 100755 --- a/pkg/chartutil/testdata/genfrob.sh +++ b/pkg/chartutil/testdata/genfrob.sh @@ -6,7 +6,9 @@ tar -zcvf mariner/charts/albatross-0.1.0.tgz albatross echo "Packing mariner into frobnitz" tar -zcvf frobnitz/charts/mariner-4.3.2.tgz mariner +tar -zcvf frobnitz_backslash/charts/mariner-4.3.2.tgz mariner # Pack the frobnitz chart. echo "Packing frobnitz" tar --exclude=ignore/* -zcvf frobnitz-1.2.3.tgz frobnitz +tar --exclude=ignore/* -zcvf frobnitz_backslash-1.2.3.tgz frobnitz_backslash diff --git a/pkg/chartutil/testdata/mariner/Chart.yaml b/pkg/chartutil/testdata/mariner/Chart.yaml index e2efb7f99..92dc4b390 100644 --- a/pkg/chartutil/testdata/mariner/Chart.yaml +++ b/pkg/chartutil/testdata/mariner/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 name: mariner description: A Helm chart for Kubernetes version: 4.3.2 diff --git a/pkg/chartutil/testdata/mariner/charts/albatross-0.1.0.tgz b/pkg/chartutil/testdata/mariner/charts/albatross-0.1.0.tgz index 72bb6b36f..22c1fe572 100644 Binary files a/pkg/chartutil/testdata/mariner/charts/albatross-0.1.0.tgz and b/pkg/chartutil/testdata/mariner/charts/albatross-0.1.0.tgz differ diff --git a/pkg/chartutil/testdata/moby/Chart.yaml b/pkg/chartutil/testdata/moby/Chart.yaml index b725af916..a5f992c61 100644 --- a/pkg/chartutil/testdata/moby/Chart.yaml +++ b/pkg/chartutil/testdata/moby/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: moby version: 0.1.0 diff --git a/pkg/chartutil/testdata/moby/charts/pequod/Chart.yaml b/pkg/chartutil/testdata/moby/charts/pequod/Chart.yaml index d9a3bfd5f..f1a8ef76b 100644 --- a/pkg/chartutil/testdata/moby/charts/pequod/Chart.yaml +++ b/pkg/chartutil/testdata/moby/charts/pequod/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: pequod version: 0.1.0 diff --git a/pkg/chartutil/testdata/moby/charts/pequod/charts/ahab/Chart.yaml b/pkg/chartutil/testdata/moby/charts/pequod/charts/ahab/Chart.yaml index c3cdf397d..a7ee7bf90 100644 --- a/pkg/chartutil/testdata/moby/charts/pequod/charts/ahab/Chart.yaml +++ b/pkg/chartutil/testdata/moby/charts/pequod/charts/ahab/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: ahab version: 0.1.0 diff --git a/pkg/chartutil/testdata/moby/charts/spouter/Chart.yaml b/pkg/chartutil/testdata/moby/charts/spouter/Chart.yaml index f6819c06d..0525085b6 100644 --- a/pkg/chartutil/testdata/moby/charts/spouter/Chart.yaml +++ b/pkg/chartutil/testdata/moby/charts/spouter/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: spouter version: 0.1.0 diff --git a/pkg/downloader/chart_downloader.go b/pkg/downloader/chart_downloader.go index 6cb917915..b71d35793 100644 --- a/pkg/downloader/chart_downloader.go +++ b/pkg/downloader/chart_downloader.go @@ -282,11 +282,12 @@ func (c *ChartDownloader) getRepoCredentials(r *repo.ChartRepository) (username, // name is the archive file name plus the ".prov" extension. func VerifyChart(path, keyring string) (*provenance.Verification, error) { // For now, error out if it's not a tar file. - if fi, err := os.Stat(path); err != nil { + switch fi, err := os.Stat(path); { + case err != nil: return nil, err - } else if fi.IsDir() { + case fi.IsDir(): return nil, errors.New("unpacked charts cannot be verified") - } else if !isTar(path) { + case !isTar(path): return nil, errors.New("chart must be a tgz file") } @@ -307,7 +308,7 @@ func VerifyChart(path, keyring string) (*provenance.Verification, error) { // Currently, this simply checks extension, since a subsequent function will // untar the file and validate its binary format. func isTar(filename string) bool { - return strings.ToLower(filepath.Ext(filename)) == ".tgz" + return strings.EqualFold(filepath.Ext(filename), ".tgz") } func pickChartRepositoryConfigByName(name string, cfgs []*repo.Entry) (*repo.Entry, error) { diff --git a/pkg/downloader/testdata/signtest-0.1.0.tgz b/pkg/downloader/testdata/signtest-0.1.0.tgz index 6de9d988d..c74e5b0ef 100644 Binary files a/pkg/downloader/testdata/signtest-0.1.0.tgz and b/pkg/downloader/testdata/signtest-0.1.0.tgz differ 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 1e89b524f..7bbc533ca 100644 Binary files a/pkg/provenance/testdata/hashtest-1.2.3.tgz and b/pkg/provenance/testdata/hashtest-1.2.3.tgz differ 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 aec86c640..c5ea741eb 100644 Binary files a/pkg/repo/repotest/testdata/examplechart-0.1.0.tgz and b/pkg/repo/repotest/testdata/examplechart-0.1.0.tgz differ diff --git a/pkg/repo/repotest/testdata/examplechart/Chart.yaml b/pkg/repo/repotest/testdata/examplechart/Chart.yaml index 8e06de648..a7d297285 100644 --- a/pkg/repo/repotest/testdata/examplechart/Chart.yaml +++ b/pkg/repo/repotest/testdata/examplechart/Chart.yaml @@ -1,3 +1,4 @@ +apiVersion: v1 description: A Helm chart for Kubernetes name: examplechart version: 0.1.0 diff --git a/pkg/repo/testdata/repository/frobnitz-1.2.3.tgz b/pkg/repo/testdata/repository/frobnitz-1.2.3.tgz index fc8cacec2..8731dce02 100644 Binary files a/pkg/repo/testdata/repository/frobnitz-1.2.3.tgz and b/pkg/repo/testdata/repository/frobnitz-1.2.3.tgz differ diff --git a/pkg/repo/testdata/repository/sprocket-1.1.0.tgz b/pkg/repo/testdata/repository/sprocket-1.1.0.tgz index 595e9cc03..48d65f491 100644 Binary files a/pkg/repo/testdata/repository/sprocket-1.1.0.tgz and b/pkg/repo/testdata/repository/sprocket-1.1.0.tgz differ diff --git a/pkg/repo/testdata/repository/sprocket-1.2.0.tgz b/pkg/repo/testdata/repository/sprocket-1.2.0.tgz index 82188a99b..6fdc73c2b 100644 Binary files a/pkg/repo/testdata/repository/sprocket-1.2.0.tgz and b/pkg/repo/testdata/repository/sprocket-1.2.0.tgz differ 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 90cb34bd5..6f1e8564c 100644 Binary files a/pkg/repo/testdata/repository/universe/zarthal-1.0.0.tgz and b/pkg/repo/testdata/repository/universe/zarthal-1.0.0.tgz differ