Project

General

Profile

Actions

PulpV3GapAnalysis » History » Revision 3

« Previous | Revision 3/40 (diff) | Next »
Brian Bouterse, 05/24/2018 07:08 PM
Posting content from today's meeting


PulpV3GapAnalysis

Content Tab

Content -> Red Hat Repositories

Katello knows the content URLs from candlepin, matches on the CDN, presents them to the user, the user selects them
  • Katello creates a Repo tracking this in Pulp with client certificates and CA certificate
  • Katello specifies custom options from the 'Custom Repo Creation Page' but these use cases are covered in that section

Katello deletes a Repository

Content -> Products

Content -> Products -> New Product (used for things like CentOS, SLES, etc)

All data here is stored only in Katello since this is a Product not a Repository and Pulp doesn't have a concept of a Product
Sync Plans will not be handled inside of Pulp

Content -> Products -> {product_name} -> Repositories

The user selects a type and content-specific fields are shown.

Debian:

Sync Options
  • Upstream URL (str)
  • Releases (csv list)
  • Components (csv list)
  • Architectures (csv list)
  • Verify SSL (boolean)
  • Upstream username (str)
  • Upstream password (str)
  • Ignore Global http Proxy (bool)
Publish Options
  • Publish via HTTP (bool) <----------------------------- PROBLEM AREA

Docker

  • Sync Options
  • Ustream URL (str)
  • Upstream Repository Name (str)
  • Verify SSL (bool)
  • Upstream username (str)
  • Upstream password (str)
  • Ignore Global http Proxy (bool)

File

Sync Options
  • Upstream URL (str)
  • Verify SSL (boolean)
  • Upstream username (str)
  • Upstream password (str)
  • Ignore Global http Proxy (bool)
Publish Options
  • Publish via HTTP (bool) <----------------------------- PROBLEM AREA

OSTree

Sync Options
  • Upstream URL (str)
  • Upstream Sync Policy (choice): Latest Only, All History, Custom Depth (with a number specified) <--- in Pulp2 also specified on distributor
  • Verify SSL (boolean)
  • Upstream username (str)
  • Upstream password (str)
  • Ignore Global http Proxy (bool)

Puppet

Sync Options
  • Upstream URL (str)
  • Verify SSL (boolean)
  • Upstream username (str)
  • Upstream password (str)
  • Mirror on Sync (boolean)
  • Ignore Global http Proxy (bool)
Publish Options
  • Publish via HTTP (bool) <----------------------------- PROBLEM AREA

Yum

General Fields <------ not used by Pulp
  • Restrict to Architecture (choice)
  • GPG Key (str)
Sync Settings
  • Upstream URL (str)
  • Ignorable Content (multiselect): RPM, DRPM, SRPM, Errata, Distribution
  • Verify SSL (boolean)
  • Upstream username (str)
  • Upstream password (str)
  • Download Policy (choice): (On Demand, Background, Immediate) <---- Background does not have a strong use case
  • Mirror on Sync (bool)
  • Ignore Global http Proxy (bool)
  • SSL CA Cert (str)
  • SSL Client Cert (str)
  • SSL Client Key(str)
Publish Settings
  • Checksum: (choice) Default, sha256, sha1 <----- for all repodata including primary.xml

Content -> Products -> {product_name} -> Repositories -> {repository_name}

This displays a created repository.

Katello allows the user to upload a package

  • Receives the data from the user, sends it to Pulp
  • Relies on Pulp to fully parse the metadata and create the unit <------- REQUIREMENT: must have Pulp determine all metdata
  • Associates the the unit with the repository

Katello Reads a content Summary on this page

Katello can call a 'Sync Now'

  • Katello tells the remote associated with the repository to sync

Katello can peroform an 'Advnaced Sync':

  • Optimized Sync
  • Complete Sync
  • Validate Content Sync

Content -> Products -> {product_name} -> Repositories

This is the index view of all repositories

Repsitories in Katello can have the same name, but Pulp enforces a unique name on repositories globally <--------- GAP

Katello takes a Product ID which resolves to a set of repos. Katello fetches this set of repos. For each repo we need to fetch:

  • name (str)
  • type (str), e.g. 'yum'
  • sync status, e.g. 'Not synced, Pending, Error' <------------------------- GAP this would require a second call to load the data per Remote
  • Content Summary, e.g. 2 packages, 5 errata, etc. Similarly for other types.

Katello can trigger a sync of one or more Repositories at once.

  • Trigger the sync on one or more Remotes as independant calls

Katello can trigger a delete of one or more Repositories at once.

  • Trigger the delete call to Pulp as independant calls

Search/Filtering of the list of Repositories, for Repository attributes

  • content_type: the type of content
  • content_view_id: the id of the content View <-------- not in Pulp anywhere currently
  • ignore_global_proxy <--------- GAP area, not currently in Pulp, but probably should be
  • name
  • product
  • redhat <---------- Anything added from Red Hat "Products" page in Katello gets Red Hat.

Search/Filtering of the list of Repositories, for content units

  • distribution_arch:
  • distribution_bootable <----------- if Katello can detect if it has a vmlinuz init.rd it knows the distribution is bootable. Detected at the end of every sync.
  • distribution_family
  • distribution_uuid
  • distribution_variant
  • distirbution_version

NOTE: Must not have to make a call for each item in a list page. Must be able to make one call.

Content -> Content Credentials

Content -> Sync Plans

Content -> Sync Status

Content -> Lifecycle

Content -> Lifecycle Environments

Content -> Content Views

Content -> Activation Keys

Content -> Content Types

Content -> Deb Packages

Content -> Container Image Tags

Content -> Errata

Content -> Files

Content -> OSTree Branches

Content -> Packages

Content -> Puppet Modules

Hosts -> Content Hosts

Non UI things

  • the API endpoint that clients upload their enabled repos
  • the API endpoint that clients upload their package profiles
  • the API endpoint that clients register
  • the API endpoint that clients unregister
  • speed throttling and other global settings?
  • Errata mailer
  • smart proxy page/details

Terminology

Candlepin Manifest - Defines Products, Subscriptions, and a Content Sets
Product - A collection of repositories. A repository can only belong to one product
Repository Set - Has a name, Label, and URL of the form: /content/rhel/server/7/$RELVER/$BASEARCH/os/

Updated by Brian Bouterse over 6 years ago · 40 revisions