On 2020-09-29 18:22, Dennis Kliban wrote:
On Tue, Sep 29, 2020 at 10:30 AM Maarten Beeckmans <[email protected] <mailto:[email protected]>> wrote:

    We are trying to automate our Pulp3 setup the same way as our
    Pulp2 setup.

    We have the following use cases in our Pulp2 setup:

    a) We create mirrors and repositories automatically for every
    environment (using puppet and the API). The repositories are
    defined in a yaml configuration file (Puppet Hiera).
      - We have several problems for doing this in Pulp3. It's very
    complex to automatically create mirrors (ex. centos-8-appstream)
    for the development environment (that are in sync with the
    upstream repositories). A possible solution for this problem would
    be to add a 'latest' flag to publications and distributions so
    that they are always pointing to the latest version of the repository.
      - It is possible to create the repositories with scripts, but
    that's specific and quite hacky. It's also not possible to
    automatically update the publications and distributions this way.
    We would need to keep a local copy of what distribution maps to
    what repository, but that's not a good idea. Why keep a local copy
    of the mapping if that's present in pulp.


We are already planning to improve this workflow. A single API call will create a task that will sync a repo, create a new publication, and update the distribution. We are first going to introduce the change in pulp_file and then other plugins will follow. https://pulp.plan.io/issues/7469
This issue seems to be solving my issue.

    b) We upload packages from one repository (that is not served to
    clients) to another repository based on lists in yaml (cherry
    picking), or straight from a (jenkins) Pipeline. This is done by
    the pulp-admin commands.
      - cherry picking could be done by copying content from one
    repository to another using the copy API call, but we want to
    automatically expose those changes to the development environment
    (promotion can be done as in c).
      - Uploading content isn't an issue because this is possible by
    converting the pulp-admin commands to api calls.


You want to be able to upload a package and have that operation create a new publication and update the distribution. This would be similar to the story that I linked above for syncing - except for the upload use case.  Am I understanding correctly?
Yes, that's what we want. If we create an rpm itself, we want that's it directly available in the (development) repository so we don't have to create a new publication and update the distribution. For adding it to production, we would promote the repository as described in c. Same when copying packages between repositories.

    c) We want to be able to 'promote' a set of repositories from one
    environment to another. We are using a script that is generated by
    puppet when creating the repositories in a).
      For 'promoting' a set of repositories to one environment to
    another environment, this is explained
    https://docs.pulpproject.org/pulpcore/workflows/promotion.html.


I don't understand what challenge you are describing in C.
Now we have different repositories for development and production. We want to be able to easily promote repositories from development to production (with archiving, the production repository keeps X older versions of packages), this may be done with one command in the cli interface or different commands that can be scripted. This is somewhat explained in the docs, but it's very high level. Maybe it's a good idea to add an example in the rpm docs (with the promoting of an CentOS repository)?

    Thanks for all the work

    Maarten
    _______________________________________________
    Pulp-list mailing list
    [email protected] <mailto:[email protected]>
    https://www.redhat.com/mailman/listinfo/pulp-list

--
(o-    Maarten Beeckmans
//\     Open Source Consultant
V_/_  Inuits -https://www.inuits.eu

_______________________________________________
Pulp-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/pulp-list

Reply via email to