I'm confronted with the task of cleaning up an old docker registry on a OpenShift 1.1.6 cluster setup which we can't upgrade in the near future because a production install of one of our clients is being run on it and the upgrade to a new Openshift version is - while planned - still some month away. Right now we are running origin-docker-registry:1.1.6 which contains a docker-registry 2.1.0. Although OpenShift sports the 'oadm prune' command, this doesn't seem to work (correctly?) in this dated OpenShift version. Although we set the required environment variables to enable deletes (REGISTRY_STORAGE_DELETE_ENABLED: true), 'oadm prune image...' never seems to clean up any data.
To be able to test other options we set up a test environment and tried the following methods to see if we could achieve a registry cleanup without having to update the whole cluster:
1) use the docker.io/registry:2 registry:
We pulled down the original docker registry (version 2.4), mounted a copy of the production registry data and tried to 'registry garbage-collect', which resulted in all data being deleted. Although we are aware that probably isn't a supported method, I still would be curious why it deleted all the data - is the structure of the openshift registry different?
2) use a recent openshift registry:
We updated only the origin-docker-registry pod to 1.4.1 (registry version 2.4.1 iirc) and ran 'oadm prune images...' on our test dataset. Although this actually deleted the unreferenced data, is this a supported way to clean up a registry? As of right now we have no method of knowing if the registry is consistent after the cleanup. We of course would like to only switch to the new registry temporarily to clean up stale data, then start the old version again to keep the setup as-is for right now.
3) other/better method I'm not aware of?
br and thanks in advance for any insights on how to move forward,