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:

  1. 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.
  2. Provide an SSL certificate and have the Pulp Installer configure the web server to use that certificate.
  3. 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 download_concurrency was 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.

The pulp_installer collection can be installed from Ansible Galaxy with the following command:

    ansible-galaxy collection  install --force pulp.pulp_installer

The --force flag will upgrade the collection if you had a previous version installed.

Plugin API

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”.