0
0

Cloud Manager Reference Manual

Docs
Docs EInnovator Posted 13 May 20

Cloud Manager » Solution Repositories

CloudManager allows for administrators to define Solution Repositories from which users can pick up packaged artifacts — designed as Solutions — for installation in the Spaces they are authorized. Each Solution Repository is configured with an index file with meta-data about the list of Solutions that can be installed. The actual installations instructions for each Solution are setup externally to the index file and referenced via a URL.

Management of Solution Repositories is only available for *CloudManager administrators. Thus, the Admin link should be clicked first — in the user info dropdown, or Apps left-side tray – to navigate to the Admin dashboard.

Repository Indexes and Installation Specs

A Solution Repository is configured with an index file that specifies a list of Solutions, with descriptive meta-data and URL to external installation package resource. The format of the index file is the same as supported by the Helm — one of most widely used command-line solution installer for K8s. This allows existing Helm repositories indexes files to be used directly in CloudManager.

The index file is a YAML file describing package solutions. The index file can be build manually, or with the help of a tool. Helm command repo index can be used to created an index file from a set of packaged helm charts. The generated index can be subsequently edited to add additional information.

The information in an index file is mostly descriptive, and is used to allow solutions to be browsed, searched, and installed easily with the help of tools (web based like CloudManager, or others). The most important field is urls which specifies one (or more) URLs where the package solution can be download from.

An example of an index file is show below:

apiVersion: v1
entries:
  einnovator-sso:
  - apiVersion: v1
    appVersion: 1.0.0
    created: 2020-01-01T12:00:00Z
    description: EInnovator SSO Gateway
    digest: xxxxx
    home: https://home.einnovator.org/sso-gateway
    icon: https://cdn.einnovator.org/img/solution/sso-gateway-blue200.png
    keywords:
    - sso
    - security
    maintainers:
    - email: support@einnovator.org
      name: support
    name: einnovator-sso
    sources:
    - https://github.com/einnovator/einnovator-sso-starter
    urls:
    - https://cdn.einnovator.org/charts/einnovator/einnovator-sso-1.0.0.tgz
    version: 1.0.0
  einnovator-notifications:
  - apiVersion: v1
    ...

There are two types solutions packages currently supported by CloudManager:

  • Helm Charts — the packaging format used by Helm. They are not installed by CloudManager directly, but by integration with Helm.
  • Cloud Native — this are YAML manifest files, similar in structure and content to Kubernetes manifest files, but with additional features such as variable expansion and profiles.

Listing Solution Repositories

The Button Repos in the top toolbar in the navigates to the list of Solution Repositories

Image below shows an example of list Solution Repositories available to a user:

Solution Repository List

Creating and Editing Solution Repositories

Administrators can define any number of Solution Repositories. The button Add New in the Solution Repository list page, opens a form page to create a new repository.

The following fields should be specified when defining a Solution Repository:

  • Name — descriptive name
  • URL — URL of the index file (should be accessible from the cluster/pod/machine where CloudManager is running)
  • Type — Format used for packaged solutions:
    • Helm — for Helm Charts
    • Cloud Native — for extended manifest files
  • an optional decorative image/thumbnail
  • Enabled — boolean flag specifying if repository is visible to users
  • Featured — boolean flag specifying if selected repository solutions should be display in the home dashboard
  • Remote — boolean flag specifying if integration is done with a remote package manager (e.g. helm). If true, the following field should also the specified:
    • Namespace — namespace of the Pod where the the package manager is installed.
    • PodPod where the the package manager is installed.
    • Binary/Executable — path of the binary executable for the package manager (e.g. /bin/helm)

Images below show an example of SolutionRepository being created for helm (left-hand side), and the details of the repository after created (righ-hand side).

Solution Repository Create Solution Repository Create

Managing Repository Solutions

Image below show a snapshot of the solutions list for of a repository:

Solution Repository Create

Learning More

Comments and Discussion

Content