Installing Gitlab on local Kubernetes Cluster

Hi Folks, looking for some help

I am going to be working on some API-based tools for Gitlab and would like to set up a local GitLab setup on my laptop. My laptop is well speced (64GB Ram, 8th gen i7, 2 TB SSD) so it got plenty of go.

My system runs Fedora 35

I used “kind” to set up a k8s cluster that seems to be working ok

[thawkins@fedora ~]$ k cluster-info
Kubernetes control plane is running at h t t p s ://127.0.0.1:40365
CoreDNS is running at h t t p s ://127.0.0.1:40365/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump’.
[thawkins@fedora ~]$

I installed kubectl and helm 3.x

from this page: h t t p s ://docs.gitlab.com/charts/installation/deployment.html

helm repo add gitlab h t t p s://charts.gitlab.io/
helm repo update
helm upgrade --install gitlab gitlab/gitlab
–timeout 600s
–set global.hosts.domain=example.com
–set global.hosts.externalIP=10.0.0.10
–set certmanager-issuer.email=me@example.com

10.0.0.10 is the ip of my laptop when connected to my internal network

so wait a while until all the pods settle. eventually, i get

[thawkins@fedora]$ k get pods
NAME READY STATUS RESTARTS AGE
gitlab-certmanager-774db6b45f-rwg6g 1/1 Running 0 3m2s
gitlab-certmanager-cainjector-75f8fbb78d-jcvfr 1/1 Running 0 3m2s
gitlab-certmanager-webhook-5ffbcb7c55-vlwzv 1/1 Running 0 3m2s
gitlab-gitaly-0 1/1 Running 0 3m2s
gitlab-gitlab-exporter-69bd94dd7-fc5fp 1/1 Running 0 3m2s
gitlab-gitlab-runner-5cdbd48f9f-gw7lk 0/1 Running 1 (21s ago) 3m2s
gitlab-gitlab-shell-64f985f68d-knjmw 1/1 Running 0 2m47s
gitlab-gitlab-shell-64f985f68d-rt4cw 1/1 Running 0 3m1s
gitlab-issuer-1-jtc4z 0/1 Completed 0 3m2s
gitlab-migrations-1-fzv2c 0/1 Completed 0 3m2s
gitlab-minio-create-buckets-1-lhg5b 0/1 Completed 0 3m2s
gitlab-minio-dd4c6d959-m88vt 1/1 Running 0 3m2s
gitlab-nginx-ingress-controller-668fd4d8d-c6gqf 1/1 Running 0 3m2s
gitlab-nginx-ingress-controller-668fd4d8d-h2w56 1/1 Running 0 3m2s
gitlab-nginx-ingress-defaultbackend-596c86f7c6-pxjdh 1/1 Running 0 3m2s
gitlab-postgresql-0 2/2 Running 0 3m2s
gitlab-prometheus-server-6645896758-k62qw 2/2 Running 0 3m2s
gitlab-redis-master-0 2/2 Running 0 3m2s
gitlab-registry-5d66fdc857-8jk4w 1/1 Running 0 3m2s
gitlab-registry-5d66fdc857-cb87w 1/1 Running 0 2m47s
gitlab-sidekiq-all-in-1-v2-644f6bc875-65rfp 1/1 Running 0 3m1s
gitlab-toolbox-6c759db554-vvnmg 1/1 Running 0 3m2s
gitlab-webservice-default-6f46b9ddd5-c9qgt 2/2 Running 0 2m47s
gitlab-webservice-default-6f46b9ddd5-tspq5 2/2 Running 0 3m2s
[thawkins@fedora]$

All seems to be running fine, no errors, runner restarted, but i don’t care about that right now.

checking the ingress

[thawkins@fedora ~]$ k get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
gitlab-minio gitlab-nginx minio.example.com 80, 443 5m6s
gitlab-registry gitlab-nginx registry.example.com 80, 443 5m6s
gitlab-webservice-default gitlab-nginx gitlab.example.com 80, 443 5m6s
[thawkins@fedora ~]$

I already have this line in my /etc/hosts

10.0.0.10 gitlab.example.com minio.example.com registry.example.com

so all looks cool, open up my browser type h t t p ://gitlab.example.com and …

This site can’t be reached

gitlab.example.com refused to connect.

Try:

  • Checking the connection
  • [Checking the proxy and the firewall
    ERR_CONNECTION_REFUSED

there are no other services that might be blocking those ports, no other webserver running. No errors indicating there is an issue.

Anybody got any ideas, it was doing so well until the last bit, I have obviously done something really stupid somewhere or assumed something that is not true, any help gratefully accepted.

[FIXED]
The ingress controller does not provide access to the cluster from the local machine, you have to set up a port-forward in kubectl to forward a port on your machine to the ingress controller. in my case it was

[thawkins@fedora ~]$ k port-forward gitlab-nginx-ingress-controller-668fd4d8d-lqlp6 1080:443

Then accessing https://gitlab.example.com:1080 displayed the login page, it may display a few timeout errors before it comes up first due to the cluster starting up, but eventually, the login page appears.

However you still need to set the admin password to get it, and that involves using the “toolbox” pod to access the CLI, I will post details on how to do that once I manage to work out the details.

Note it will also moan about the ssl being bad, just click on the advanced link and select “proceed to site”