Question

How to connect Gitlab project to Kubernetes cluster?

Posted August 6, 2019 3.4k views
Git Development Kubernetes

I want to connect my Gitlab project with a Kubernetes cluster.

Basically I want to try to create my first CI/CD pipeline.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

3 answers

Hello,

With GitLab this is quite straight forward to do.

Prerequisites:

  • Deploy a K8s cluster on DigitalOcean. If you do not have that already, here’s how to do it:

https://www.digitalocean.com/docs/kubernetes/how-to/create-clusters/

  • Follow the instructions on how to install kubectl and connect to the cluster. You can follow the steps here:

https://www.digitalocean.com/docs/kubernetes/how-to/connect-to-cluster/

  • Create an account with Gitlab.com

  • Create your GitLab project

Once you have all that ready, you could follow the steps on the official GitLab website, they have really good documentation on how to add an existing Kubernetes cluster to your project:

https://docs.gitlab.com/ee/user/project/clusters/#add-existing-kubernetes-cluster

The best thing is that once you’ve added the cluster, you can just install applications like Helm Tiller and Prometheus, directly via your GitLab interface with just one click.

Hope that this helps!
Regards,
Bobby

Follow up question, since the CA expires every week, will we need to update the configuration on Gitlab every week?

  • Create a gitlab-admin serviceaccount.
  • Create the gitlab-admin cluster role binding with RBAC authorization.
  • Get the gitlab-admin secret you just created in the kube-system namespace, and take the token out. This will be used as your TOKEN.
  • Get your project’s namespace’s default token secret and extract the certificate. This will be your CA.
  • Get your cluster’s public URL (which could be an IP address). This will be your API URL.
  • Your project’s namespace (which has to be unique — and not default) will be your NAMESPACE.
  • Now connect your cluster through the GitLab Kubernetes portal.
edited by MattIPv4
Submit an Answer