Filters are not respected when publish a new version of a CV

Hello,

Problem:
On the Satellite, I created a CV with the repositories without filter to be able to distribute on the disconnected Katello in order to be able to publish CV with filters on the Katello.

I use the export method by making the repository available in /var/www/html/pub/cdn

I changed the location of the CDN by pointing the connected satellite and the synchronization works fine.

I took a repo Red Hat Enterprise Linux 8 for x86_64 - BaseOS RPMs 8 (without filter) and has :
9904 packages
1174 error

On Katello, creating the CV with the filter below:
filter

Unfortunately after publication, Foreman/Katello did not take my filter into account because there are 1174 errata and I see errata after January 27, 2020

But by creating the CV with the same filter on the Satellite 6.8:
1723 packages
250 Errata (42/170/38)

If I added the extra filter to include rpm packages without errata, on Katello I have the entire repo despite the presence of the filters. These filters were not respected.

Expected outcome:

CV created on Katello must have the same counter as on Satellite.

Foreman and Proxy versions:
Foreman and Proxy versions : 2.5.4-1.el8
Katello version : 4.1.4-1.el8

Foreman and Proxy plugin versions:
Foreman and Proxy versions : 2.5.4-1.el8
Katello version : 4.1.4-1.el8

Distribution and version:
Red Hat Enterprise Linux release 8.5 (Ootpa)

Hi @groyc

Do you have dependency solving turned on for this content view? (it’s in the Details tab.)

Hi @jeremylenz

No, the resolver is disabled.

@sajha tried to reproduce on current master with that repo, but was unable to. The filters seem to work fine.

You’re syncing from an upstream Satellite 6.8 (which had Katello 3.16) which is pretty old. Perhaps upgrading one or both would help…

Is the problem restricted to this particular repository?

I tried to do same thing on Disconnected Katello with versions 3.16, 3.18 and 4.1. Same behavior.

When I want to filter the errata (on a specific date), Katello takes all the errata.

However, I can clearly see in Dynflow console for creating CV that the task takes the filter into account:
repo_id_map:
“[1]”:
dest_repo: 4
filter_ids:
** - 1**

Connected Satellite does not have a CV (it’s our objective because to make an export/import of 20 CV (with filters) it’s too much and requires a lot of data to transit). I just copied the content directory of the product (which is indicated in “Published At”).

When you create a CV, it’s Katello/Foreman who should do the filters, no?

I started the test with a single repository. With this result, if I add other repos, I think I will have the same behavior. If a filter is for errata, they take everything instead of filtering them properly.

I’m going to see to upgrade the Satellite to 6.9 but I’m not sure that solves this problem.

Hi @jeremylenz

Little news about this issue.

I just noticed that Pulp3 is supported from Katello 3.16 for rpm packages (https://theforeman.org/2020/05/bye-bye-pulp2.html)

While Satellite supports pulp3 from 6.10 (Foreman 2.5 + Katello 4.1)

As it is the same behavior on versions 3.16, 3.17 and 4, I tried on Katello 3.15 (any chance??) by redoing the same manipulations, the filters work!

It’s just that Pulp 2 is used on Satellite 6.8 and 6.9, while Katello 3.16 supports Pulp 3 while this version is the same on Satellite 6.8 but with Pulp2.

When the upstream server uses Pulp 2 but the downstream server uses Pulp 3, the filters do not work.