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
-
10.2 | Helm tiller, needed to install other apps: https://gitlab.com/gitlab-org/gitlab-ce/issues/36629 -
10.2 | Ingress, for deployed apps: https://gitlab.com/gitlab-org/gitlab-ce/issues/35958 -
10.4 | Prometheus, to monitor deployed apps: https://gitlab.com/gitlab-org/gitlab-ce/issues/28916 ~Prometheus -
GitLab Runner, to easily auto-scale your jobs: https://gitlab.com/gitlab-org/gitlab-ce/issues/32831
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 |
---|---|---|
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 |
---|---|
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.
-
Feature assurance -
Documentation -
Added to features.yml