Support of Helm 3 push/pull

I am trying to push/pull Helm Charts with the Helm 3 experimental feature implementing OCI protocol.

OSS Nexus Repository v3.21.1-01
Helm 3.1.1 on Windows 7

I am basically using the command “helm chart push”.
When activating the debug mode I can see that it uploads 2 blobs and 1 manifest.

The first blob containing the chart.yaml as a json content is uploaded with content-type=“application/vnd.cncf.helm.config.v1+json”
The second blob containing the chart package is uploaded with content-type=“application/tar+gzip”
The manifest is uploaded with content-type=“application/vnd.oci.image.manifest.v1+json”.

The push sequence doesn’t show any error, but when inspecting the content in the repository, all 3 have their content type changed:

  • “application/vnd.cncf.helm.config.v1+json” changed to “application/vnd.docker.container.image.v1+json”
  • “application/tar+gzip” changed to “application/vnd.docker.image.rootfs.diff.tar.gzip”
  • “application/vnd.oci.image.manifest.v1+json” changed to “application/vnd.docker.distribution.manifest.v2+json”

The consequence is that I get an error form the Helm client when trying the command “helm chart pull”.
It fails on the first request to get the manifest with:

time=“2020-04-02T09:18:56+02:00” level=warning msg=“unknown type: application/vnd.docker.distribution.manifest.v2+json”

Error: blob sha256:71b284041c6e46d094369d9ac57c0b7dddb729e694c1870c16a13e8df1cf62cb expected at C:\Users\xberard\AppData\Local\Temp\helm\registry\cache\blobs\sha256\71b284041c6e46d094369d9ac57c0b7dddb729e694c1870c16a13e8df1cf62cb: not found

Is there a way to avoid this change of content-type?

1 Like