Products

The products page can be accessed via The Content Menu:

Content > Products

The products page forms a part of orcharhino’s content management. (See also: Content Management Guide).

An orcharhino product is simply a named collection of one or more repositories. Products are closely associated with subscriptions (see also 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. However, the most general supported repository type is just a file repository (which may contain arbitrary content). Supported repository types include: deb, yum, puppet, and file.

Note

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. (See also: Supported Content Types).

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 re-synchronize products periodically. (See also: Sync Status and Sync Plans).

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. (See also: Content Credentials).

Note

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:

List available products and describe buttons on this view
  • The Create Product button (1) will take you to the create product page. (See Creating a Product below).
  • The Repo Discovery button (2) will take you to the repository discovery page. (See Discovering Repositories below).
  • The Select Action menu (3) is used to perform bulk action upon selected products. (See Performing Bulk Actions below).
  • 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. (See Viewing a Product below).

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:

Bulk actions on the products view
  • 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 (see also: Tasks and/or Sync Status) 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 (see also Content Views).

The advanced sync window offers three different synchronization options:

Describe various advanced sync buttons
  • 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:

Manage sync plans in which upstream content will be synchronized
  • 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:

Create a product
  • 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/or SSL certificates (which need to be added to orcharhino separately) via the drop down menus provided (4) (5) (6) (7). (See also Content Credentials).
  • Products can be associated with a sync plan via the drop down menu provided (8). (See also: Sync Plans).
  • 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. (See Creating a Repository below.)

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

Note

To create a repository, you must already have created the product that the repository will be placed in (see Creating a Product above).

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:

Create repository within a product
  • 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 file).
  • Each possible type is documented further below.

When selecting deb as repository type, the following additional entities will appear:

Create a debian repository
  • 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.list on 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.

    Note

    Starting with orcharhino 4.0 Releases and Components should be entered exactly as they would be in an /etc/apt/sources.list file. 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/debian for Debian or https://dep.atix.de/dep/api/v1/ubuntu for Ubuntu).

    Important

    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 <debian_release>/updates (e.g.: stretch/updates) as part of their Releases (2). The corresponding requirement for Ubuntu would be <ubuntu_release>-security (e.g.: xenial-security).

  • 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 Release files 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 (see also Sync Status and Sync Plans).


We will skip a detailed documentation for the file, and puppet repository types, since they are already well documented directly within the orcharhino interface (as well as the docker repository type since it is an experimental feature).


When selecting yum as repository type, the following additional entities will appear:

Create yum repository
  • 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)!
  • For more information on the various keys and certificates that can be selected (3), see Content Credentials.
  • Remember to click the Save button (4) to create your repository. Before you can use your new repository, it will need to be synchronized (see also Sync Status and Sync Plans).

Discovering Repositories

The repository discovery page can be accessed via The Content Menu:

Content > Products >> Repo Discovery

Note

Repository discovery currently works only for repositories of type yum. To create repositories of any other type, see Creating a Repository above.)

Repository discovery offers an interactive way to create repositories (as well as products), that differs significantly to the process outlined above. (See also: Creating a Product and Creating a Repository). We will use a step by step example to explain repository discovery.

  1. First, we navigate to the repository discovery page, which looks as follows:

    Discover yum repository available on a web URL
  2. 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 hit the Discover button (3). This will cause any repositories (of the type selected) found at the URL provided to appear as follows:

    Discovery repositories
  3. 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:

    Set some more options on the discovered repository view
    • 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.
    • After creating new repositories they will need to be synchronized. (See also: Sync Status and/or Sync Plans).

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:

Show details of a orcharhino product
  • 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. (See also Sync Status).
  • Selecting New Sync Plan (5) from the Select Action menu (3), will open a create sync plan window. (See also Sync Plans).
  • 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 (see also Content Views) with content from this product.
  • The Details tab (7) shows various product properties, most of which can be edited using the edit icons (edit_button) provided. Amongst other things you can add various content credentials (9) to the product here. (See also: Content Credentials).
  • 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):

List of repositories within a product
  • The New Repository button (2) will open the new repository page (within the repositories tab). (See Creating a Repository above).
  • Existing repositories (in the product being viewed) can be synchronized (see also Sync Status) 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. (See Viewing a Repository below).

The tasks tab (see also Tasks) will list any tasks relating to the product being viewed:

List tasks which have relationship with a product
  • Example tasks might include the synchronization of relevant repositories (see also Sync Status) and the publication of content views (see also Content Views).

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:

Show details of a repository in a product
  • In the Basic Information area (1) you can change most settings of your repository via the edit icons (edit_button) provided.

  • Near the bottom of this area (2) you can edit the content credentials associated with your repository. (See also Content Credentials).

  • The Sync Status area (3) displays information on associated sync plans. (See also Sync Plans and/or Sync Status).

  • The link next to Packages (4) in the Content Counts area, will take you to the packages subpage 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). (See also Errata).

  • In the Upload Package area (6) you can manually upload additional packages to the repository being viewed.

    Note

    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. (See also Tasks and/or Sync Status).

  • 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. (See also: Content Views).

You can search the full list of packages contained in a repository on the packages subpage:

Lst of packages in a repository of a product'
  • You can also select arbitrary packages via the checkboxes provided (1) and then remove them from the repository using the Remove Packages button (2).

    Note

    Packages that were manually removed may reappear with the next sync. (See also Sync Plans and Sync Status). If you do not want some package published to some content view version (see also Content Views), remove it from the underlying repository, and publish the content view before the next sync.