Gitlab: How to enable metrics and web terminal for custom kubernetes clusters

12/1/2020

I’m running a self-managed gitlab 13.6 on a VM and have a kubernetes 1.17 cluster on a different machine connected. gitlab-runner is running as a gitlab-managed-app, as is prometheus - I did manually install cert-manager and ingress, because those gitlab managed apps did not install correctly. The user that has been created for the gitlab-connection has AdminCluster rights with all permissions.

When I create a simple demo project from the templates and enable AutoDevOps, I can use the web terminal of the environment to login to the pod/container. In the operations->metrics page, I can see graphs for the kubernetes node itself, but no graphs for the ingress controller.

Since AutoDevOps is a nice start but is not adequate for one of my projects, I’ve build a custom pipeline, which deploys to the kubernetes cluster as well. There, no graphs are generated at all in the metrics tab and the Web Terminal for all environments just give me a “Connection refused”

(1) So, what labels or annotations in the ingress of the project have to be added to the nginx ingress controller, so that gitlab prometheus is able to record and display ingress metrics as well?

(2) What labels or annotations in the pods of the project have to be added, so that the gitlab Web Terminal in the environments tab is working?

(3) How does gitlab choose the container to start the Web Terminal in, when a pod consists of multiple containers?

The documentation does not really help.

-- Lars
gitlab
gitlab-ci
kubernetes

0 Answers