从 *registry* 中删除 helm chart(不是从集群中卸载;不是存储库)

Delete helm chart from *registry* (not uninstall from cluster; not repository)

Helm v3 支持 OCI 注册表,例如(例如)随 docker run -dp 5000:5000 --restart=always --name registry registry as opposed to the more common v2 repositories.

安装的标准 registry 映像

我可以推、拉等,但我没有看到任何简单的方法来 删除 注册表中的过时图表。

谁有好的建议?

首先,您需要确保您的注册表允许删除 API,还有一个额外的 REGISTRY_STORAGE_DELETE_ENABLED 选项:

docker run -d --restart=unless-stopped --name registry \
  -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \
  -e "REGISTRY_STORAGE_DELETE_ENABLED=true" \
  -v "registry-data:/var/lib/registry" \
  -p "127.0.0.1:5000:5000" \
  registry:2

然后您可以调用 manifest delete API. Just note that this will delete all tags pointing to that manifest. If you want to delete a single tag without impacting other tags to the same manifest, my own regclient 项目,其中包括用于删除单个标签的 regctl tag rm 命令,以及您可能会发现对管理本地注册表有用的其他 CLI(类似项目包括 crane 和 skopeo但我不确定他们是否提供标签删除)。

删除清单后,注册表本身仍会有一些底层 blob,可以使用定期 GC 进行修剪。这应该在注册表上没有发生写入时完成:

docker exec registry /bin/registry garbage-collect /etc/docker/registry/config.yml --delete-untagged