Bug #34257
closedLimited CV docker tags cannot be pulled after syncing library repo with "limit sync tags"
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=2040453
Description of problem:
Scenario: there is a content view version promoted to some LCE with docker tags. Tags: latest, glibc, and uclibc.
There are no filters.
The library repository is given "Limit Sync Tags": glibc,uclibc and the repo is re-synced.
Now, the library repo is missing latest as it should.
However, when you try to `podman pull` from the content view version LCE repository, latest is also missing, even though the content view version never changed.
Example error:
WARN0003 failed, retrying in 1s ... (3/3). Error: initializing source docker://satellite.example.com/default_organization-environment-testcv-myproduct-prometheus_busybox:uclibc: reading manifest uclibc in satellite.example.com/default_organization-environment-testcv-myproduct-prometheus_busybox: unknown: uclibc was not found!
Version-Release number of selected component (if applicable):
Katello 4.1+, maybe older versions as well.
How reproducible:
100%
Steps to Reproduce:
1. Sync a docker repo
2. Add that docker repo to a content view and publish
3. `podman pull` from the content view version LCE repository (Library is fine)
4. Ensure that `podman pull` works on some tag "A" in the repo
5. Update the repository's limit sync tags to exclude the tag "A" that was tested before
6. Re-sync the repository
7. Try pulling tag "A" again. Notice that there is an error about the tag being missing.
Actual results:
Tag "A" cannot be pulled.
Expected results:
Tag "A" can still be pulled.
Additional info:
This is due to RepositoryDockerMetaTags disappearing when the library repository is synced. Workarounds include resyncing the repository and republishing the content view. Alternatively, you can run `repository.index_content` in the foreman console on the related content view version repository.