Project

General

Profile

PulpV3GapAnalysis » History » Revision 3

Revision 2 (Justin Sherrill, 05/23/2018 02:31 PM) → Revision 3/40 (Brian Bouterse, 05/24/2018 07:08 PM)

h1. PulpV3GapAnalysis 

 h1.    Content Tab 

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

 


 h2.    Content -> Products 

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

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

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

 h4. Debian: 

 h5. 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) 

 h5. Publish Options 

 * Publish via HTTP (bool)         <----------------------------- PROBLEM AREA 


 h4. Docker 

 * Sync Options 

 * Ustream URL (str) 

 * Upstream Repository Name (str) 

 * Verify SSL (bool) 

 * Upstream username (str) 

 * Upstream password (str) 

 * Ignore Global http Proxy (bool) 


 h4. File 

 h5. Sync Options 

 * Upstream URL (str) 

 * Verify SSL (boolean) 

 * Upstream username (str) 

 * Upstream password (str) 

 * Ignore Global http Proxy (bool) 

 h5. Publish Options 

 * Publish via HTTP (bool)         <----------------------------- PROBLEM AREA 


 h4. OSTree 

 h5. 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) 


 h4. Puppet 

 h5. Sync Options 

 * Upstream URL (str) 

 * Verify SSL (boolean) 

 * Upstream username (str) 

 * Upstream password (str) 

 * Mirror on Sync (boolean) 

 * Ignore Global http Proxy (bool) 

 h5. Publish Options 

 * Publish via HTTP (bool)         <----------------------------- PROBLEM AREA 


 h4. Yum 

 h5. General Fields     <------ not used by Pulp 

 * Restrict to Architecture (choice) 

 * GPG Key (str)   

 h5. 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) 

 h5. Publish Settings 

 * Checksum: (choice) Default, sha256, sha1     <----- for all repodata including primary.xml 


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


 h3.    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.* 

 



 h2.    Content -> Content Credentials 


 h2.    Content -> Sync Plans 


 h2.    Content -> Sync Status 


 h2.    Content -> Lifecycle 


 h2.    Content -> Lifecycle Environments 


 h2.    Content -> Content Views 


 h2.    Content -> Activation Keys 


 h2.    Content -> Content Types 


 h2.    Content -> Deb Packages 


 h2.    Content -> Container Image Tags 


 h2.    Content -> Errata 


 h2.    Content -> Files 


 h2.    Content -> OSTree Branches 


 h2.    Content -> Packages 


 h2.    Content -> Puppet Modules 



 h1.    Hosts -> Content Hosts 


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



 h1.    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/