Bug 2231499 - Satellite Capsule clamps reply to a max of 100 tags when listing the tags (break RHOSP)
Summary: Satellite Capsule clamps reply to a max of 100 tags when listing the tags (br...
Keywords:
Status: ON_DEV
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Container Management - Content
Version: 6.12.4
Hardware: x86_64
OS: Linux
urgent
unspecified
Target Milestone: 6.13.4
Assignee: Ian Ballou
QA Contact: Satellite QE Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-08-11 18:01 UTC by Odilon Sousa
Modified: 2023-08-12 02:55 UTC (History)
5 users (show)

Fixed In Version: rubygem-smart_proxy_container_gateway-1.0.8-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 2221407
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 36616 0 Urgent Closed [smart_proxy_container_gateway] Smart proxy clamps reply to a max of 100 tags when listing the tags 2023-08-11 18:01:44 UTC
Red Hat Issue Tracker SAT-18855 0 None None None 2023-08-11 18:01:44 UTC
Red Hat Issue Tracker SAT-19520 0 None None None 2023-08-11 18:02:21 UTC

Description Odilon Sousa 2023-08-11 18:01:30 UTC
+++ This bug was initially created as a clone of Bug #2221407 +++

Description of problem:

We're using Satellite 6.12.4.1 (Satellite + Capsule) to serve RHOSP content (rpms and containers).

I've noticed that the capsule -clamps- the list of tags to 100 and the sonsequence is that this breaks 'openstack undercloud install' and the automation around it.

Version-Release number of selected component (if applicable):
6.12.4.1 on RHEL8.8

How reproducible:
100%

Steps to Reproduce:
1. Add RHOSP16 container repos to a satellite CV, promote and sync to the capsule.
2. List the container tags from the Satellite + Capsule.
3. All of the replies from the capsule are clamped to '100'.

* Satellite:
# skopeo list-tags docker://w0617ialabrhsat01.iaas.tdlab.ca:443/test-openstack-test_osp16-nfvi-evo-osp16-nfvi-evo-osp16-openstack-nova-api|grep '16\.[0-9]'|wc -l
102
# skopeo list-tags docker://w0617ialabrhsat01.iaas.tdlab.ca:443/test-openstack-test_osp16-nfvi-evo-osp16-nfvi-evo-osp16-openstack-nova-compute-ironic|grep '16\.[0-9]'|wc -l
112


* Capsule:
# skopeo list-tags docker://satellite-capsule01.maas:443/test-openstack-test_osp16-nfvi-evo-osp16-nfvi-evo-osp16-openstack-nova-api|grep '16\.[0-9]'|wc -l
100
# skopeo list-tags docker://satellite-capsule01.maas:443/test-openstack-test_osp16-nfvi-evo-osp16-nfvi-evo-osp16-openstack-nova-compute-ironic|grep '16\.[0-9]'|wc -l
100

--- Additional comment from  on 2023-07-08T23:01:59Z 

The issue here is on Capsules only. On Satellite, the results seem to be retrieved by Foreman from it's own DB. On a Capsule that doesn't exist so foreman-proxy asks Pulp to return the list. Once there the request for tags/list defines this `pagination_class = ContainerTagListPagination`, which just loops back to `api_settings.PAGE_SIZE:`, and we can find this in;
~~~
[root@capsule1 ~]# grep PAGE_SIZE /usr/lib/python3.9/site-packages/pulpcore/app/settings.py
    "PAGE_SIZE": 100,
~~~

You can see there Pulp defaults to returning 100 lines per page, and we need to increase that to get beyond this problem, at least temporarily.

--- Additional comment from  on 2023-07-10T13:13:41Z 

The fix can likely be to introduce paging here: https://github.com/Katello/smart_proxy_container_gateway/blob/main/lib/smart_proxy_container_gateway/container_gateway_main.rb#L46

--- Additional comment from  on 2023-07-26T21:42:51Z 

Created redmine issue https://projects.theforeman.org/issues/36616 from this bug

--- Additional comment from  on 2023-07-27T00:03:15Z 

Upstream bug assigned to iballou

--- Additional comment from  on 2023-07-27T00:03:17Z 

Upstream bug assigned to iballou

--- Additional comment from  on 2023-08-11T08:56:27Z 

Verified in 6.14.0 snap 11 (with rubygem-smart_proxy_container_gateway-1.0.8-1.el8sat.noarch)

Same steps like https://bugzilla.redhat.com/show_bug.cgi?id=2227902#c2, same result:

[user@localhost ~]$ skopeo list-tags --tls-verify=false --username=admin --password=heslo docker://sat.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller | grep '"' | wc -l
823

[user@localhost ~]$ skopeo list-tags --tls-verify=false --username=admin --password=heslo docker://caps.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller | grep '"' | wc -l
823

[user@localhost ~]$ diff <(skopeo list-tags --tls-verify=false --username=admin --password=heslo docker://sat.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller | sort) <(skopeo list-tags --tls-verify=false --username=admin --password=heslo docker://caps.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller | sort)
608c608
<     "Repository": "sat.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller",
---
>     "Repository": "caps.redhat.com/default_organization-jetstack-jetstack_cert-manager-controller",


Note You need to log in before you can comment on or make changes to this bug.