# Pulp4: On Its Way? ## **Don't Panic!** * PulpCON 2024, 2023-11-05 1430UTC * Grant Gainey (ggainey@redhat.com) * Slides can be found at https://hackmd.io/@ggainey/pulp4_proposal --- ## Agenda * Introduction * Why a new version? * What are we thinking of changing? * How are we thinking of accomplishing this? * When would we start seeing this work in Pulp3? * Things To Be Considered * Key Takeaways * Q&A --- ## Why? * Lots added to, and learned from, Pulp3-in-use * Pulp3's "REST API Promise" makes some improvements impossible * we don't want to break your workflows! * but we DO want to make Pulp better! * pulp2to3 taught us "Big Bangs Are BAD" * We want a change process that is * Focused * Consumable * Repeatable --- ## What? * The current set of "breaking changes" under consideration: * Replace use of HREFs with PRNs * Make domains required * **all** URLS include domain * Move RBAC policy-configuration to settings.py * Remove direct-Artifact-access from the API * Currently - That's it! --- ## How? * Primary Consideration * "Allow for measured upgrade path" * Pulp3: * new endpoints appear as tech-preview * existing endpoints maintained for bugfixes * Pulp4: * new endpoints out of tech-preview * old endpoints exist, unmaintained * packaging versioned ---- ### Pulp3 Details: * acquires tech-preview `/pulp/api/v4/*` REST endpoints * Changes, above, added to the `/v4/` endpoint * APIs unaffected by these changes also become available under `/v4/` * `/v3/` and `/v4/` APIs co-exist and are maintained * `/v3/` becomes "bugfixes only" (?) * Access to `/v4/` happens by "normal" Pulp3 updates ---- ### Pulp4 Details * Once `/v4/` is considered complete and stable: * pyPI/theforeman-RPM packages versioned * NOTE: Pulp team does not own RPM packaging :) * `/v4/` declared not-tech-preview * `/v3/` **still available** * but unmaintained * (except for emergencies??) --- ## When? * Small list of important changes * Non-intrusive upgrade path * How about "now"? * `/v4/` endpoints appear in Pulp3 * Q4 2024? * Pulp4 releases * Q2 2025? * Remember: `/v3/` continues to exist even once Pulp4 released! --- ## And **Then** What? * Pulp5 (!): * `/v3/` API **removed** * `/v4/` moves to **maintained** * `/v5/` becomes **available** * and so on... * Shows a repeatable, consumable, upgrade path --- ## OK - What's the catch? * Need to make all plugins domain-aware * Pulp team stretched to maintain multiple API versions * The longer Pulp3 is "current", the worse this will be * Please - upgrade soon * Until then - PRs gratefully accepted :) --- ## Things We Need To Think About * How are plugins affected? * What might a migration-helper look like? * ...for people using client bindings? * ...for people using `pulp-glue`? * ...for people making direct `requests` calls? --- ## Review * Some important changes require changing the REST API * Big Bangs are Bad * Minimizing impact on end-users a primary goal * Establishing a repeatable process is critical * **DON'T PANIC!!!** --- ## Q&A --- ## Thanks!
{"description":"View the slide with \"Slide Mode\".","title":"Pulp4: On Its Way","contributors":"[{\"id\":\"1a6032ad-e6b7-434d-aa35-96e6ebf50256\",\"add\":4061,\"del\":713}]"}
    399 views