The Pulp team is pleased to announce the release of Pulp 3.6.
This release contains a number of bug fixes as well as major enhancements to improve security and usability. If you are upgrading to Pulp 3.6, ensure that you pay particular attention to the Installer HTTP -> HTTPS and Schema and Bindings Changes sections. This blog outlines the most significant changes. For a full list of changes, see the changelog.
Pulp 3.6 is available on PyPI.
Pulp File 1.2.0 has also been released and is available on PyPI.
Installer HTTP -> HTTPS
This release introduces SSL to ensure the security of Pulp requests. As part of upgrading to using HTTPS, you must complete one of the following actions:
- Have the Pulp Installer generate a CA certificate, create an SSL certificate that is signed by that CA, and configure the web server with that certificate.
- Provide an SSL certificate and have the Pulp Installer configure the web server to use that certificate.
- Use a role to request a LetsEncrypt SSL certificate or some other ACME protocol-compatible service. The installer can then configure the web server to use that SSL certificate.
Schema and Bindings Changes
In 3.6, our REST API schema was updated from OpenAPI v2 to OpenAPI v3. This change was needed to fix a bug where
write_only fields were not being handled properly in the schema and bindings. This will potentially affect bindings’ users because some method parameters may change especially for endpoints that involve file parameters.
The Upload update() method now accepts the content_range as the first parameter and upload_href as the second.
Repository Remote Association
A Remote can now be set on a Repository. This link provides a way to automatically sync from a Remote without having to specify which Remote you want to sync from when you sync.
http PATCH $BASE_ADDR$REPO_HREF remote=$REMOTE_HREF http POST $BASE_ADDR$REPO_HREF'sync/'
Default download_concurrency Value Changed from 20 to 10
Pulp 3’s default value for
20. This was found to put an undue burden on the server the remote is retrieving content from. As a result of some concurrency testing, the default value has been adjusted to
10. You can adjust this to suit your own deployment.
Importing Split Files
Import functionality has been improved to better handle the import of split files using the new table of contents (TOC) file for exports and
toc= parameter for imports.
Using the new
toc= parameter, the import API now finds and validates the checksums of any
chunk_files, and reassembles them into a single .tar.gz file.
For more information see, Pulp Import/Export documentation.
Plugin Writers – Role Based Access Control (RBAC)
While not available for users yet, significant role based access machinery was added in 3.6 for plugin writers to enable RBAC with. See the new plugin writer docs and Plugin API changelog for more details.
Installation and Upgrade
Use the 3.6.0 release of
pulp_installer to install or upgrade. This version of the installer will check compatibility of all installed plugins with pulpcore 3.6. The installer will abort if any plugin is incompatible.
pulp_installer collection can be installed from Ansible Galaxy with the following command:
ansible-galaxy collection install --force pulp.pulp_installer
--force flag will upgrade the collection if you had a previous version installed.
This version includes support for Role Based Access Control(RBAC). To see a full list of Plugin API changes, read Plugin API changelog
In keeping with the recommended strategy to pin plugins to a 3.y version of
pulpcore, plugins should release compatibility releases with 3.6 as soon as they can. We recommend using “pulpcore>=3.6,<3.7”.