我们已经将AWS s3存储设置为Helm存储库。
但是随着开发的进行,越来越多的软件包文件被上载到S3。
我们想在S3中清理/删除旧文件,我知道我们不能直接从S3中删除它们,因为index.yaml中存储了一些映射信息。
我检查了helm help
,有关此的信息很少。有什么正式的方法可以删除旧的头盔包?
答案 0 :(得分:0)
无法使用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
答案 1 :(得分:0)
要扩展VKR的答案,我们的头盔s3存储库中有不需要的软件包,希望摆脱它们。我采取了以下方法。
答案 2 :(得分:0)
如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
答案 3 :(得分:0)
curl -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-<version-number>.tgz
curl -u username:password -XDELETE http://helm.chartrepo.url/api/charts/chart-name/chart-name-0.1.0.tgz
我们正在使用人工制品作为我们的头盔仓库,所以这是一个例子
curl -u username:password -XDELETE https://ourartifactoryurl/artifactory/myrepo/myhelmchart/myhelmchart-0.1.0.tgz
答案 4 :(得分:0)
我建议您使用 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>
它将根据存储库中的图表重新创建索引。