FYI, you can copy a specific RPM if you apply a filter. The filtering is 2.y is cumbersome so I don't have a ready example, but it can be done. You can do it with additional arguments to `pulp-admin rpm repo copy rpm`. Those filters correspond with this API endpoint [0]. There are also a lot of copy examples for rpm plugin types [1].

I also believe that copying only the latest is an option, but I couldn't find that in the docs. Maybe another user or dev can point us to them.

Copy is additive so I expect that RPMs that don't exist on the source won't be deleted from dest. A feature Pulp doesn't support is the removal of content from the destination with a copy operation. For the use case where you want one repo to become exactly like the other you could remove all units from the destination and then copy all.

[0]: http://docs.pulpproject.org/dev-guide/integration/rest-api/content/associate.html
[1]: http://docs.pulpproject.org/plugins/pulp_rpm/user-guide/recipes.html

-Brian

On 09/05/2016 05:11 AM, Vladimir Vasilev wrote:
Hi,

I was thinking and testing the same approach, with "copy rpm".
A few disadvantages:
you cannot copy specific RPM
you cannot copy only latest versions.
RPMs that don't exist on source won't be deleted from dest

Or maybe there's some filters which can do that above.

What I like more is having the prod repositories configured to sync from
stage with:
--feed=XXX |--remove-missing=true --download-policy=on_demand
||--relative-url=XXX

Then you upload/publish to stage and later just run sync for prod.
No one must push directly to prod. I just wonder how can I enforce this
on the server side.
|
On 09/05/16 08:28, Vaclav Adamec wrote:
Hi,
 I'm using Ansible playbooks for deployment and Puppet+Hiera to setup
repozitories on servers (right now about 30 repozitories at all, about
5 per server). All servers have disabled live repozitories (for
security patches) and enabled assigned stage (dev has live,
integration unstable, production stable). Than it's just a pipeline of
commands on Ansible playbook like this:

# Live repo runs two times per day
rpm repo sync run --repo-id=centos_live
rpm repo publish run --repo-id=centos6_live

#Every week
rpm repo copy rpm --from-repo-id=centos6_live centos6_unstable
rpm repo publish run ...

#Every month
rpm repo copy rpm --from-repo-id= centos6_unstable centos6_stable
rpm repo publish run ...

After publishing Ansible playbook will run update on all servers in
given stage.

Is that something what do you want to achieve ? As a simple GUI I'm
using Jenkins (as a smarter crontab) and ocsreports to get back
installed packages and system overview. Pulp server is behind caching
Nginx proxies (just RPMs, not metadata). I don't using any kind of
registration to Pulp as for dynamic/cloud environment it's more or
less stupid idea.

Vasek


On Sat, Sep 3, 2016 at 12:56 PM, Vladimir Vasilev <[email protected]
<mailto:[email protected]>> wrote:

    Hi,

    I checked the latest pulp docs and can't find this..
    Is there a way to have environments (dev->stage->prod or any) and kind
    of promote RPMs to the upper?
    I see some "content environment" in [1] but the idea is different.
    There's copy from one repo to another and again to method to copy
    specific RPMs or latest versions.

    Looks like juicer [2] is trying to solve this. We use it for one
    client
    and it works. Downside is that I'm stuck with 3rd party tool.

    [1]
    https://docs.pulpproject.org/plugins/pulp_rpm/user-guide/recipes.html
    <https://docs.pulpproject.org/plugins/pulp_rpm/user-guide/recipes.html>
    [2] https://github.com/juicer/juicer
    <https://github.com/juicer/juicer>


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




--
-- May the fox be with you ...
   /\
  (~(
   ) )         /\_/\
  (_=---_(@ @)
    (          \   /
    /|/----\|\  V
    " "     " "



--
Vladimir Vasilev
Senior Systems Administrator
PnT DevOps - System Operations
Red Hat Czech s.r.o., Purkynova 99, 612 00 Brno, Czech Republic
Work: +420 532-294-569
Cell: +420 737-080-404



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


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

Reply via email to