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