Skip to content

Easy installation of helper applications in Kubernetes cluster

Description

Our effort in supporting Kubernetes (and GKE) integration (https://gitlab.com/gitlab-org/gitlab-ce/issues/35956) includes easy interaction with a cluster. On this cluster we want to make very easy to install applications that are needed for GitLab to work correctly and to use the cluster for review apps and deployments.

Proposal

Allow users to install easily the following applications

This will be done in the brand new CI/CD > Cluster page, where a cluster must have been added or created previously.

Application list

We add an Applications section to the Cluster page. This section cannot be collapsed or expanded because we want it to have maximum visibility.

At the top of the section there is some descriptive text. There is also a link to documentation, which will explain the process of installing applications and what they're for

The application list is a table with the following rows:

  • Name of the app, which is a link to documentation/vendor page
  • Application description. TODO: Create descriptions for apps (current ones are taken from the Internet)
  • A button to install each application

Helm Tiller is required to install other applications. If it is not installed beforehand, it will be automatically installed as a dependency when the user tries to install a different app.

While installation is happening, the Install button changes to Installing along with a spinner and becomes disabled.

After installation succeeds, the button changes to Installed and remains disabled. A banner across the top notifies the user of the successful installation.

If possible, it would be good to have a way to auto-detect if the component is already installed in the cluster, and in that case, turn the button to Installed automatically.

App list Installing Installed
ce_38464__cluster-install-apps ce_38464__cluster-install-apps--installing ce_38464__cluster-install-apps--installed

Errors

Errors may occur during the installation of applications. Errors will be communicated as red banners.

Since multiple apps may be installed at the same time, and each one could throw their own error, we need to show the error message inline with each row of the table.

If possible, any additional information returned by the API should be included in this error

If several errors occur for the same app, they should be displayed as separate lines in the same banner.

Error in 1 app Error in more than app
ce_38464__cluster-install-apps-error-one ce_38464__cluster-install-apps-error-multiple

Documentation blurb

Overview

What is it? Why should someone use this feature? What is the underlying (business) problem? How do you use this feature?

Use cases

Who is this for? Provide one or more use cases.

Feature checklist

Make sure these are completed before closing the issue, with a link to the relevant commit.

Edited by Mark Pundsack