如何将 helm provenance 文件推送到 ECR

问题描述 投票:0回答:1

我们要求使用签名的 helm chart,我正在尝试将 helm chart 和出处文件推送到 ECR,但似乎我总是出错。

helm --debug push mychart-0.1.0.tgz.prov oci://<account_id>.dkr.ecr.<region>.amazonaws.com/mychart
Error: file 'mychart-0.1.0.tgz.prov' does not appear to be a gzipped archive; got 'text/plain; charset=utf-8'
helm.go:84: [debug] file 'mychart-0.1.0.tgz.prov' does not appear to be a gzipped archive; got 'text/plain; charset=utf-8'

我能够很好地推送 helm chart,但不能推送 provenance 文件。 如何将出处文件推送到 AWS ECR,我在任何地方都没有看到任何关于此的文档?

amazon-web-services docker-registry amazon-ecr
1个回答
0
投票

您不需要推送 .prov 文件(实际上不能,这就是您看到的错误)。

如果 .prov 文件在您推送图表时出现在图表旁边,它将作为清单中的附加层推送。

这是一个例子。

$ ls
provenance  provenance-0.1.0.tgz  provenance-0.1.0.tgz.prov

$ helm push provenance-0.1.0.tgz oci://123456.dkr.ecr.us-west-2.amazonaws.com/helm-charts
Pushed: 123456.dkr.ecr.us-west-2.amazonaws.com/helm-charts/provenance:0.1.0
Digest: sha256:df420b2600a0818cfe5e8b228e281f10c58cd00a26ff9af62ec331b98c1bc3ed

检查清单,将 prov 文件视为附加层。

$ TOKEN=$(aws ecr get-authorization-token --region us-west-2 --output text --query 'authorizationData[].authorizationToken')

$ curl -s -H "Authorization: Basic $TOKEN" https://123456.dkr.ecr.us-west-2.amazonaws.com/v2/helm-charts/provenance/manifests/0.1.0 | jq
{
  "schemaVersion": 2,
  "config": {
    "mediaType": "application/vnd.cncf.helm.config.v1+json",
    "digest": "sha256:50d3f916d42dc08af94cff9adbbcc90493149580b27a097dc30cbe0dbf0564cc",
    "size": 144
  },
  "layers": [
    {
      "mediaType": "application/vnd.cncf.helm.chart.provenance.v1.prov",
      "digest": "sha256:1dccc47a5f06a5c7c524c82edd53e4cfaa2abf7332ec95daf4c444cb92904426",
      "size": 911
    },
    {
      "mediaType": "application/vnd.cncf.helm.chart.content.v1.tar+gzip",
      "digest": "sha256:f956dd9ca2b0d4978cf45c8d8b10d591216df46ced41504a3dcb5621b1266a6c",
      "size": 3758
    }
  ]
}

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.