【问题标题】:Is there any way to clean/delete some older packages in helm repo?有没有办法清理/删除 helm repo 中的一些旧包?
【发布时间】:2019-05-24 09:48:17
【问题描述】:

我们已将 AWS s3 存储设置为 Helm 存储库。

但是随着开发的进行,越来越多的包文件被上传到 S3。

我们想清理/删除 S3 中的旧文件,当然,我知道我们不能直接从 S3 中删除它们,因为 index.yaml 中存储了一些映射信息。

我查看了helm help,得到的信息很少。有什么正式的方法可以删除旧的 helm 包?

【问题讨论】:

  • 你试过helm delete --purge [relasename](见docs.helm.sh/helm/#helm-delete)吗?
  • 感谢您的帮助。 helm delete 是 K8s 部署中的删除版本。我想删除 Helm repo 中无用和较旧的 helm 包(*.tgz),而不是从 K8S 中删除

标签: kubernetes kubernetes-helm


【解决方案1】:

无法使用helm 清理旧包。 您可以使用github 的方法。

# !/bin/bash
# Remove all files in these directories.
rm -rf ~/.helm/cache/archive/*
rm -rf ~/.helm/repository/cache/*
# Refreash repository configurations
helm repo update
#That's all.
#If you "helm search" next time, you can find newest stable charts in repository

【讨论】:

    【解决方案2】:

    为了扩展 VKR 的回答,我们在 helm s3 存储库中有一些不需要的包,我们想摆脱它们。我采取了以下方法。

    1. 从 s3 存储桶下载了 index.yml 文件。删除了不需要的包的所有条目。在本地保存 index.yml 文件。然后从 s3 bucket 中删除 index.yml 文件,并将新修改的 index.yml 文件上传到 s3。
    2. 删除了 s3 中所有不需要的包,并且在步骤 1 中已从 index.yml 文件中删除了这些包。
    3. 清除了 VKR 回答中提到的缓存目录。
    4. 运行 helm repo 更新 一切都很好,所有不需要的包都不会出现在 helm 搜索中。

    【讨论】:

      【解决方案3】:

      https://chartmuseum.com/docs/#helm-chart-repository中所述

      你可以使用 Helm Museum api 来做到这一点

      例如

      # curl -XDELETE http://helm.chartrepo.url/api/charts/chart-name/version
      

      请注意版本,每次 curl 命中必须删除一个版本,这意味着如果您有 2 个版本并且想要删除所有版本,则每个版本都必须这样做

      # curl -XDELETE http://helm.chartrepo.url/api/charts/chart-name/1.0.1
      # curl -XDELETE http://helm.chartrepo.url/api/charts/chart-name/1.0.2
      

      ps: 您可以通过点击搜索您的应用版本

      # curl http://helm.chartrepo.url/index.yaml
      

      【讨论】:

      【解决方案4】:

      curl -XDELETE http://helm.chartrepo.url/api/charts/chart-name/chart-name-<version-number>.tgz

      如果您的 helm repo 需要授权 curl -u username:password -XDELETE http://helm.chartrepo.url/api/charts/chart-name/chart-name-<version-number>.tgz

      curl -u username:password -XDELETE http://helm.chartrepo.url/api/charts/chart-name/chart-name-0.1.0.tgz

      我们使用 artifactory 作为我们的 helm repo,所以这里有一个例子 curl -u username:password -XDELETE https://ourartifactoryurl/artifactory/myrepo/myhelmchart/myhelmchart-0.1.0.tgz

      【讨论】:

        【解决方案5】:

        我建议您使用 helm-s3 插件并遵循以下两种方法之一来保持 Helm S3 存储库的清洁和最新:

        1 ) 使用helm s3 delete 从存储库中删除特定图表版本:

        $ helm s3 delete <some-chart> --version X.Y.Z <repo-name>
        

        请注意,远程和本地 repo 索引都将自动更新。

        2 ) 直接使用 S3 API 删除旧图表文件 (.tgz) 然后运行:

        $ helm s3 reindex <repo-name>
        

        它将根据存储库中的图表重新创建索引。

        【讨论】:

          【解决方案6】:

          从文档https://chartmuseum.com/docs/#helm-chart-repository -DELETE /api/charts// - 删除图表版本(和相应的出处文件)

          1. 首先找到版本$ curl - 获取 http://localhost:8081/api/charts
          2. curl -XDELETE http://localhost:8081/api/charts/samplechart/0.1.0

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-10
            • 2020-07-23
            • 2016-01-06
            • 1970-01-01
            • 2020-05-27
            • 2022-01-16
            相关资源
            最近更新 更多