<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p> </p>
<div class="moz-forward-container">
<div class="moz-cite-prefix">On 2020-09-29 18:22, Dennis Kliban
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAPmNiupTz_Y6ZgePg3emddd7-SzgBhpTVhFer7CJ13hSvqKpJw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Sep 29, 2020 at
10:30 AM Maarten Beeckmans <<a
href="mailto:maartenb@inuits.eu" moz-do-not-send="true">maartenb@inuits.eu</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div>We are trying to automate our Pulp3 setup the
same way as our Pulp2 setup.<br>
<br>
We have the following use cases in our Pulp2 setup:<br>
<br>
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).<br>
- 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.<br>
- 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.<br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>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. <a
href="https://pulp.plan.io/issues/7469"
moz-do-not-send="true">https://pulp.plan.io/issues/7469</a></div>
</div>
</div>
</blockquote>
This issue seems to be solving my issue.<br>
<blockquote type="cite"
cite="mid:CAPmNiupTz_Y6ZgePg3emddd7-SzgBhpTVhFer7CJ13hSvqKpJw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div>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.<br>
- 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).<br>
- Uploading content isn't an issue because this is
possible by converting the pulp-admin commands to
api calls.<br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>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?<br>
</div>
</div>
</div>
</blockquote>
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.<br>
<blockquote type="cite"
cite="mid:CAPmNiupTz_Y6ZgePg3emddd7-SzgBhpTVhFer7CJ13hSvqKpJw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div>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).<br>
For 'promoting' a set of repositories to one
environment to another environment, this is
explained <a
href="https://docs.pulpproject.org/pulpcore/workflows/promotion.html"
target="_blank" moz-do-not-send="true">https://docs.pulpproject.org/pulpcore/workflows/promotion.html</a>.<br>
<br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>I don't understand what challenge you are describing in
C.<br>
</div>
</div>
</div>
</blockquote>
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)?<br>
<blockquote type="cite"
cite="mid:CAPmNiupTz_Y6ZgePg3emddd7-SzgBhpTVhFer7CJ13hSvqKpJw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div>Thanks for all the work<br>
<br>
Maarten</div>
</div>
</div>
_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank"
moz-do-not-send="true">Pulp-list@redhat.com</a><br>
<a
href="https://www.redhat.com/mailman/listinfo/pulp-list"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://www.redhat.com/mailman/listinfo/pulp-list</a></blockquote>
</div>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
(o- Maarten Beeckmans
//\ Open Source Consultant
V_/_ Inuits - <a class="moz-txt-link-freetext" href="https://www.inuits.eu" moz-do-not-send="true">https://www.inuits.eu</a></pre>
</div>
</body>
</html>