From 927253854b6766541a3741b4953eb8559a40be0a Mon Sep 17 00:00:00 2001 From: Nimrod Zimerman Date: Wed, 7 Jun 2017 18:44:15 +0300 Subject: [PATCH] Prevent deletion of a manifest that is used by a tag that isn't deleted --- registry.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/registry.py b/registry.py index 458802d..2e4b590 100755 --- a/registry.py +++ b/registry.py @@ -443,6 +443,12 @@ def main_loop(args): else: tags_list_to_delete = sorted(tags_list, key=natural_keys)[:-keep_last_versions] + # A manifest might be shared between different tags. Explicitly add those + # tags that we want to preserve to the keep_tags list, to prevent + # any manifest they are using from being deleted. + tags_list_to_keep = [tag for tag in tags_list if tag not in tags_list_to_delete] + args.keep_tags.extend(tags_list_to_keep) + delete_tags( registry, image_name, args.dry_run, tags_list_to_delete, args.keep_tags)