Products and Repositories¶
The products page can be accessed via the content menu:
Content > Products
The products page forms a part of orcharhino’s content management.
An orcharhino product is simply a named collection of one or more repositories. Products are closely associated with subscriptions.
A repository itself is a remote source for (software) content. To be usable in orcharhino a software repository must be of a supported type. The most general supported repository type is just a file repository (which may contain arbitrary content). Other supported repository types include: deb, yum, Puppet, and Docker.
There is a difference between a supported repository type and a supported content type. Some repository types may contain more than one type of content. For example, repositories of type yum may contain content of type errata, as well as content of type RPM package.
In general repositories can only ever be added to orcharhino as part of some product. This serves to keep the orcharhino user interface tidy.
Once repositories have been added to a product in orcharhino, they need to be synchronized. Synchronization (also referred to as syncing), will copy the upstream content of all repositories contained within the product, into orcharhino’s local database. Since the underlying (remote) repositories may be subject to change, it may be desirable to resynchronize products periodically.
It is also possible to associate products with a GPG key or an SSL certificate to verify signed repositories. The GPG key is used to ensure the integrity of the packages in a repository. The SSL certificates are used to synchronize a third-party repository for which SSL-based authentication is required. In this case, you will probably need to provide an SSL CA certificate, an SSL client certificate, and an appropriate SSL client key. GPG keys and SSL certificates can be added on the content credentials page.
The SSL certificates of a product are inherited to newly created repositories. Assigning or changing SSL certificates does not affect existing repositories. If you want to change SSL certificate, you must change the SSL certificate of the existing repository.
The products page includes a Create Product button, a Repo Discovery button, a Select Action menu and a list of products in orcharhino:
The Create Product button (1) will take you to the create product page.
The Repo Discovery button (2) will take you to the repository discovery page.
The Select Action menu (3) is used to perform bulk actions on selected products.
The list of products (4) contains for each individual product the name, their optional description, information of recent sync results, the assigned sync plan and the number of contained repositories.
Clicking on the name of a product in the Name column (5) will take you to the product overview page.
Performing Bulk Actions¶
It is possible to perform actions on several products at once, by selecting the desired products from the first column of the list of products, and using the Select Action drop down menu to choose an action, as follows:
The check box in the top left corner (1) of the list of products can be used to select (or deselect) all products at once.
The Sync Selected action (2) will create a synchronization task for each selected product.
The Adcanced Sync action (3) will open the advanced sync window (see below).
The Manage Sync Plan action (4) will open the sync plan management window (see below).
The Remove action (5) will completely remove the selected products (including any repositories contained within them) from orcharhino. Note that products cannot be removed if any of their repositories are published as part of a content view.
The advanced sync window offers three different synchronization options:
The three options (1), (2), (3) are documented directly within orcharhino.
Select the option you want and use the Sync button (4) to create the relevant tasks.
The sync plan management window allows you to add a (preexisting) sync plan to all selected products, or to remove any associated sync plans from them:
Select the sync plan you want to add or remove from the selected products by clicking on it in the list (1). (The selected sync plan will be shaded in light blue).
The Update Sync Plan button (2) will add the selected sync plan to all selected products. You will be asked to confirm this action.
The Remove Sync Plan button (3) will remove whatever sync plan is currently associated with each selected product from them. You will be asked to confirm this action.
The Done button (4) will close the window (without performing any actions).
Creating a Product¶
The create products page can be accessed via the content menu:
Content > Products >> Create Product
The create products page includes several input fields and drop down menus:
The Products link (1) will take you back to the products page.
The Name (2) and Label fields (3) are the only required fields. (Remember that a product is just a named collection of repositories, and we have yet to add any repositories). Writing into the Name field also writes to the Label field (with underscores instead of spaces). The Label is used internally and cannot be changed once the product is created.
Products can be associated with various GPG keys and SSL certificates which need to be added to orcharhino separately via the drop down menus provided (4) (5) (6) (7).
Products can be associated with a sync plan via the drop down menu provided (8).
You may optionally add a Description (9).
The Save button (10) will create the new product and take you to its product overview page with the repositories tab selected. Here, you can use the New Repository button to start adding repositories to your new product.
Creating a Repository¶
The new repository page (for a given product) can be accessed via the relevant product overview page:
Content > Products >> list of products > Name column > name of a product > New Repository
To create a repository, you must already have created the product that the repository will be placed in.
The new repository page includes a Name and Label field. Additional input fields are dependent on the type of repository that is to be added:
Writing into the Name field (1) also writes to the Label field (2). (Any spaces in the name will be replaced with underscores for the label). The Label is used internally and cannot be changed once the product has been created.
Select the Type of repository you want to add from the drop down list (3) provided. (If your repository is not of an explicitly supported type, choose
Each possible type is documented further below.
When selecting deb as repository type, the following additional entities will appear:
The Upstream URL field (1) should contain the link to the base of the Debian repository. (Generally a Debian mirror as found in
/etc/apt/sources.liston Debian systems).
Note that most other fields (2) - (9) are documented directly in the orcharhino interface. The following provides some additional information.
For the Releases field (2) we recommend always using the codename and not the suite of the repository. In many upstream repositories a suite (like “stable”) is just a symbolic link pointing at the corresponding codename (like “stretch”). If the suite is used and the symbolic link is changed upstream, the orcharhino repository would suddenly change drastically with the next sync.
Starting with orcharhino 4.0 Releases and Components should be entered exactly as they would be in an
/etc/apt/sources.listfile. Older versions of orcharhino contain a bug where the Components for Releases with a “/” in their name (e.g.: “stretch/updates”) also needed an extra folder prefix to synchronize successfully (e.g.: “updates/main” instead of just “main”). Any repositories entered in this way will need to be changed and re-synchronized after upgrading to orcharhino 4.0.
The Errata URL field (5) will allow you to make use of the ATIX Debian Errata Parser service. To do so, simply point the Errata URL at ATIX’s Debian Errata Parser server. (
https://dep.atix.de/dep/api/v1/debianfor Debian or
Debian and Ubuntu errata are derived from the Debian security announcements (DSA) and the Ubuntu security notices (USN) respectively. Debian and Ubuntu errata should only be added to Debian and Ubuntu repositories that contain the packages needed to apply the errata. For Debian, such repositories generally require
stretch/updates) as part of their Releases (2). The corresponding requirement for Ubuntu would be
Select the Publish via HTTP checkbox (10) if you want your orcharhino repository to be reachable via HTTP. (This is a potential security risk)!
Add the relevant GPG Key (11) if you wish to verify the signatures of the
Releasefiles associated with the Debian repository.
Remember to click the Save button (12) to create your repository. Before you can use your new repository, it will need to be synchronized.
We will skip a detailed documentation for the file, Puppet, and Docker repository types for now.
When selecting yum as repository type, the following additional entities will appear:
The URL field (1) should contain the link to the yum repository.
Most other fields are adequately documented directly in the orcharhino interface.
Select the Publish via HTTP checkbox (2) if you want your orcharhino repository to be reachable via HTTP. (This is a potential security risk)!
The content credentials page offers more information on the various keys and certificates that can be selected (3).
Remember to click the Save button (4) to create your repository. Before you can use your new repository, it will need to be synchronized.
The repository discovery page can be accessed via the content menu:
Content > Products >> Repo Discovery
Repository discovery currently works only for repositories of type yum. To create repositories of any other type, refer to the creating a repository subsection above.
Repository discovery offers an interactive way to create repositories (as well as products), that differs significantly to the process outlined above. We will use a step by step example to explain repository discovery.
First, we navigate to the repository discovery page, which looks as follows:
Next, we enter the URL (2) of the repositories we wish to discover (“https://dl.fedoraproject.org/pub/epel/7/” in our example), making sure we have selected the correct Repository Type (1) (“Yum Repositories” in our example), and press the Discover button (3). This will cause any repositories (of the type selected) found at the URL provided to appear as follows:
We can now select any repositories we want (“x86_64” in our example) from the list of discovered repositories (1), and hit the Create Selected button (2). This will take us to the following page:
In the Product Options area, you may choose “Existing Product” or “New Product” from the Product drop down menu (1). (Additional fields will appear if “New Product” is chosen). If “Existing Product” was chosen, you can choose the product you want your new repositories added to using the Name drop down menu (2).
Select “Serve via HTTP” (3) if you want your new repository to be accessible via HTTP. This is a potential security risk, but precludes the need for SSL certificates.
Select “Verify SSL” (4) if you want the upstream repository source to be verified via SSL.
You can also adjust the Repository Name (5) and the Repository Label (6) before creating your new repositories. (Note that labels cannot be changed after creation).
Once you have selected all options as desired, click the Run Repository Creation button (7). This will create any new products and repositories as chosen.
New repositories will have to be synchronized.
Viewing a Product¶
The product overview page (for a given product) can be accessed via the list of products:
Content > Products >> list of products > Name column > name of a product
The product overview page consists in three tabs and a Select Action drop down menu:
The Products link (1) will take you back to the products page
Selecting Sync Now (4) from the Select Action menu (3) will schedule all repositories associated with the product being viewed for synchronization.
Selecting New Sync Plan (5) from the Select Action menu (3) will open a create sync plan window.
Selecting Remove Product (6) from the Select Action menu (3) will completely delete the product being viewed. This action is only available if there are no published content view versions with content from this product.
The Details tab (7) shows various product properties, most of which can be edited using the edit icons () provided. Amongst other things, you can add various content credentials (9) to the product here.
There are additional tabs (8) which are discussed further below.
The repositories tab exists to add, remove, or view repositories associated with the product being viewed (remember that a product is essentially a named collection of repositories):
The New Repository button (2) will open the new repository page (within the repositories tab).
Existing repositories (in the product being viewed) can be synchronized by selecting the desired repositories via the check boxes provided (1) and then using the Sync Now button (3).
Existing repositories (in the product being viewed) can be removed (from the product and by extension orcharhino) by selecting the desired repositories via the check boxes provided (1) and then using the Remove Repositories button (4).
Selecting the name of a repository from the Name column (5) will take you to the repository overview page for that repository.
The tasks tab will list any tasks relating to the product being viewed:
Viewing a Repository¶
The repository overview page (for a given repository) can be accessed via the relevant product overview page:
Content > Products >> list of products > Name column > name of a product > name of a repository
Repository overview pages contain a host of information organized into several distinct areas:
In the Basic Information area (1) you can change most settings of your repository via the edit icons () provided.
Near the bottom of this area (2) you can edit the content credentials associated with your repository.
The Sync Status area (3) displays information on associated sync plans.
The link next to Packages (4) in the Content Counts area, will take you to the packages subsection for the repository being viewed. (See the following screenshot for more information).
The link next to Errata (5) in the Content Counts area, will take you to the errata page (filtered by the repository being viewed).
In the Upload Package area (6) you can manually upload additional packages to the repository being viewed.
Depending on whether the “Mirror on Sync” setting is enabled for your repository, manually added packages may be removed with the next sync. Set “Mirror on Sync” to “No” (in the basic information area) if this is not desired.
Selecting Sync Now (8) from the Select Action drop down menu (7) will manually create a synchronization task for the repository being viewed.
Selecting Advanced Sync (9) from the Select Action drop down menu (7) will open a window with additional synchronization options.
Selecting Republish Repository Metadata (10) from the Select Action drop down menu (7) will recalculate all repository metadata from the actual content of the underlying database.
Selecting Remove Repository (11) from the Select Action drop down menu (7) will completely remove the repository being viewed from orcharhino. This action is only possible, if the repository is not currently published to any content views.
You can search the full list of packages contained in a repository on the packages subsection:
You can also select arbitrary packages via the checkboxes provided (1) and then remove them from the repository using the Remove Packages button (2).