Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael...

21
Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer [email protected] @michael_hrivnak http://www.pulpproject.org

Transcript of Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael...

Page 1: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Repository Managementwith Pulp

Presented by:

Michael HrivnakPrincipal Software Engineer

[email protected]

@michael_hrivnak

http://www.pulpproject.org

Page 2: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Distributing software is a messy business.

Page 3: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

What is Pulp?

Manage repositories of content

Supports many content types

Pull-through cache

OSS under GPL2

https://github.com/pulp

Python web app

Page 4: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Create New Repositories

Create a new repository in Pulp

Sync content from a remote repo, manually or on a schedule

Upload your own content

Copies are cheap

Page 5: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Publish Your Repository

Mix and match content, then publish

Publish can mean many things

Page 6: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

DEMO

Page 7: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Content Types

RPM family

Docker Images

Puppet Modules

Python Packages

OSTree

Regular Files

Debian Packages (community)

NPM?

Page 8: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Who uses Pulp?

Red Hat Release Engineering

Public Clouds

Katello / Red Hat Satellite 6

Community

Page 9: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

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

Page 10: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

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 ProdTest

Page 11: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Distributed Application

REST API

Content served via HTTP

Worker Processes for Async Jobs

Page 12: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

HTTPD

Workers

DB

AMQP

Publish!

Page 13: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Extensible

Standard ways to support new content types

How does content flow in?

How does content flow out?

Page 14: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

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

Page 15: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

CLI Extensions

Hierarchical layout

Many generic commands available for re-use and customization

Page 16: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Integration

REST API

Events published to AMQP topic exchange

HTTP callbacks

Page 17: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

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 remoterepo

filesystem

Page 18: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Consumer Tracking

Consumer machines can register

Report list of installed packages

Pulp calculates which machines need updates

Page 19: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Documentation

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

Page 20: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Stickers!

Page 21: Repository Management with Pulp - SCALE · Repository Management with Pulp Presented by: Michael Hrivnak Principal Software Engineer mhrivnak@redhat.com ... Pull-through Cache Available

Questions?

Michael Hrivnak

[email protected]

@michael_hrivnak

http://www.pulpproject.org