Pulp RPM Remote - How to filter out specific architectures

Problem:
Pulp RPM remote (cli) does not have a way to filter out specific architectures (such as x86_64). Hence Sync will download all the other architectures such as ARM (aarch64), PowerSystem (ppc64le), and Mainframe (s390x). This is consuming massive amount of disk space.

There is a parameter in Pulp DEB remote (cli) to limit the architecture to achieve this.

Expected outcome:
To be able to filter out specific rpm remote architectures using pulp cli.

Pulpcore version:
{
“component”: “core”,
“version”: “3.54.1”,
“package”: “pulpcore”,
“module”: “pulpcore.app”,
“domain_compatible”: true
}

Pulp plugins installed and their versions:

{
“component”: “ansible”,
“version”: “0.22.0”,
“package”: “pulp-ansible”,
“module”: “pulp_ansible.app”,
“domain_compatible”: false
},
{
“component”: “container”,
“version”: “2.20.0”,
“package”: “pulp-container”,
“module”: “pulp_container.app”,
“domain_compatible”: false
},
{
“component”: “deb”,
“version”: “3.3.0”,
“package”: “pulp_deb”,
“module”: “pulp_deb.app”,
“domain_compatible”: false
},
{
“component”: “maven”,
“version”: “0.8.1”,
“package”: “pulp-maven”,
“module”: “pulp_maven.app”,
“domain_compatible”: false
},
{
“component”: “ostree”,
“version”: “2.4.1”,
“package”: “pulp-ostree”,
“module”: “pulp_ostree.app”,
“domain_compatible”: true
},
{
“component”: “python”,
“version”: “3.12.1”,
“package”: “pulp-python”,
“module”: “pulp_python.app”,
“domain_compatible”: true
},
{
"component": “rpm”,
"version": “3.27.1”,
“package”: “pulp-rpm”,
“module”: “pulp_rpm.app”,
“domain_compatible”: true
},
{
“component”: “certguard”,
“version”: “3.54.1”,
“package”: “pulpcore”,
“module”: “pulp_certguard.app”,
“domain_compatible”: true
},
{
“component”: “file”,
“version”: “3.54.1”,
“package”: “pulpcore”,
“module”: “pulp_file.app”,
“domain_compatible”: true
}

Operating system - distribution and version:

NAME=“Alma Linux”
VERSION=“8.9”
Pulp with docker compose is used for deployment.

Other relevant data:
pulp rpm remote show --name openSUSE-Leap-15.6-distribution
{
“pulp_href”: “/pulp/api/v3/remotes/rpm/rpm/01912e5d-f59b-7efd-9246-72cb6bcd5cff/”,
“pulp_created”: “2024-08-07T19:43:15.358546Z”,
“pulp_last_updated”: “2024-08-07T19:43:15.358569Z”,
“name”: “openSUSE-Leap-15.6-distribution”,
“url”: “https://download.opensuse.org/distribution/leap/15.6/repo/oss”,
“ca_cert”: null,
“client_cert”: null,
“tls_validation”: false,
“proxy_url”: “http://X.X.X.:80/”,
“pulp_labels”: {
“OS”: “openSUSE-Leap”
},
“download_concurrency”: 10,
“max_retries”: null,
“policy”: “immediate”,
“total_timeout”: null,
“connect_timeout”: null,
“sock_connect_timeout”: null,
“sock_read_timeout”: null,
“headers”: null,
“rate_limit”: null,
“hidden_fields”: [
{
“name”: “client_key”,
“is_set”: false
},
{
“name”: “proxy_username”,
“is_set”: false
},
{
“name”: “proxy_password”,
“is_set”: false
},
{
“name”: “username”,
“is_set”: false
},
{
“name”: “password”,
“is_set”: false
}
],
“sles_auth_token”: null
}

Please note that some of the upstream urls such as https://download.opensuse.org/distribution/leap/15.6/repo/oss do not have repodata directory in the specific architecture directory to achieve filtering via url.

In order to enable rpm sync, the repo should contain repodata ( repomd.xml, primary.xml etc) This files are being parsed during sync. It is not possible to filter out content during sync.

If the concern is the space try out instead of immediate sync policy - on_demand.

1 Like