Managing Python Packages with Pulp Presented by: Michael Hrivnak - - PowerPoint PPT Presentation

managing python packages with pulp
SMART_READER_LITE
LIVE PREVIEW

Managing Python Packages with Pulp Presented by: Michael Hrivnak - - PowerPoint PPT Presentation

Managing Python Packages with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com @michael_hrivnak http://www.pulpproject.org Distributing software is a messy business. What is Pulp? Manage repositories of


slide-1
SLIDE 1

Managing Python Packages with Pulp

Presented by:

Michael Hrivnak

Principal Software Engineer

mhrivnak@redhat.com @michael_hrivnak http://www.pulpproject.org

slide-2
SLIDE 2

Distributing software is a messy business.

slide-3
SLIDE 3

What is Pulp?

Manage repositories of content Supports many content types Pull-through cache OSS under GPL2 https://github.com/pulp Python web app

slide-4
SLIDE 4

Create New Repositories

Create a new repository in Pulp Sync content from a remote repo, manually or

  • n a schedule

Upload your own content Copies are cheap

slide-5
SLIDE 5

Publish Your Repository

Mix and match content, then publish Publish can mean many things

slide-6
SLIDE 6

$ pulp-admin python repo create --repo-id pypi --feed https://pypi.python.org/ --package-names numpy,scipy Repository [pypi] successfully created

slide-7
SLIDE 7

$ pulp-admin python repo sync run --repo-id pypi +----------------------------------------------------------------+ Synchronizing Repository [pypi] +----------------------------------------------------------------+ This command may be exited via ctrl+c without affecting the request. Downloading and processing metadata. [-] ... completed Downloading and processing Python packages. [==================================================] 100% 30 of 30 items ... completed Task Succeeded

slide-8
SLIDE 8

$ pip install -i http://pulp.example.com/pulp/python/web/my_own_pypi/simple/ pulp-python-plugins Downloading/unpacking pulp-python-plugins Downloading pulp-python-plugins-0.0.0.tar.gz Running setup.py egg_info for package pulp-python-plugins Installing collected packages: pulp-python-plugins Running setup.py install for pulp-python-plugins Successfully installed pulp-python-plugins Cleaning up...

slide-9
SLIDE 9

Content Types

RPM family Docker Images Puppet Modules Python Packages OSTree Regular Files Debian Packages (community) NPM?

slide-10
SLIDE 10

Who uses Pulp?

Red Hat Release Engineering Public Clouds Katello / Red Hat Satellite 6 Community

slide-11
SLIDE 11

Use Case: Mirror Python Packages

Sync packages from PyPI to a local repository Add or remove packages as desired Retain old versions Control which versions appear together

slide-12
SLIDE 12

Use Case: Dev / Test / Production

Sync content into a development repository “Promote” by copying to a Test repository, and then to a Production repository Useful for testing upstream content, such as new RHEL point releases

Dev Prod Test

slide-13
SLIDE 13

Distributed Application

REST API Content served via HTTP Worker Processes for Async Jobs

slide-14
SLIDE 14

HTTPD Workers DB AMQP

Publish!

slide-15
SLIDE 15

Extensible

Standard ways to support new content types

How does content flow in? How does content flow out?

slide-16
SLIDE 16

Plugins

Type Definition

Model Class (using mongoengine)

Importer

Used to pull in upstream content One per repository

Distributor

Used to publish content Many per repository

core importer distributor

slide-17
SLIDE 17

Integration

REST API Events published to AMQP topic exchange HTTP callbacks

slide-18
SLIDE 18

Pull-through Cache

Available in 2.8.0 Beta Adds metadata to database without downloading files Retrieves files on-demand or in the background

yum pulp squid streamer remote repo filesystem

slide-19
SLIDE 19

Documentation

http://www.pulpproject.org/docs/

slide-20
SLIDE 20

Stickers!

slide-21
SLIDE 21

Questions?

Michael Hrivnak mhrivnak@redhat.com @michael_hrivnak http://www.pulpproject.org