GitPod Installation Issues via Docker Compose

Good day,

I’ve been trying to install GitPod on a Hetzner Cloud Server (Ubuntu 20.04 with Docker.io) for several hours. The goal is to use GitPod for my self-managed Gitlab instance.

For this I use the Docker Compose under:

I have created an .env in the same directory as docker-compose.yaml with the following values

  • DOMAIN
  • DNSSERVER

Unfortunately, all efforts so far have been without success. The Docker Container starts, but you see several messages which I would classify as errors:

gitpod_1 | time=“2020-10-19T18:36:53.770645453Z” level=info msg=“waiting for node 3d6f927239dc CIDR not assigned yet”
gitpod_1 [E1019 18:36:53.944295 49 resource_quota_controller.go:408] unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
gitpod_1 [E1019 18:36:54.124033 49 available_controller.go:420] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.43.243.35:443/apis/metrics.k8s.io/v1beta1: Get https://10.43.243.35:443/apis/metrics.k8s.io/v1beta1: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

gitpod_1 | I1019 18:33:41.443605 49 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: c4f03206de7a6ccefa0a5d39f9bf29f41f9ace2dbcb8d86cb1fb7176306e8f8e
gitpod_1 | I1019 18:33:41.461950 49 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: fe62fa5e8ead561ef98a91ef6ee2c9a3b18ac65de0732d12e41d49af0fe90498
gitpod_1 | E1019 18:33:41.464109 49 pod_workers. go:191] Error syncing pod c7638949-cd36-463a-9081-fad99c3eeaae (“node-daemon-d4r2s_default(c7638949-cd36-463a-9081-fad99c3eeaae)”), skipping: failed to “StartContainer” for “node” with CrashLoopBackOff: “back-off 10s restarting failed container=node pod=node-daemon-d4r2s_default(c7638949-cd36-463a-9081-fad99c3eeaae)”.
gitpod_1 | I1019 18:33:50.525727 49 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: ec8ff99a17f01021b66508f7d6b5c82eec69b85d944ea0bec8cd1a3bba092096
gitpod_1 | I1019 18:33:50.533319 49 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: e83b7afc9b8c051a2ad6588df6822cb9b7e778eaee3fdff4c703d850e2e160a9
gitpod_1 | E1019 18:33:50.535457 49 pod_workers. go:191] Error syncing pod aebddb36-5983-497d-b823-9511ff009cb1 (“gitpod-helmet-installer_default(aebddb36-5983-497d-b823-9511ff009cb1)”), skipping: failed to “StartContainer” for “gitpod-helmet-installer” with CrashLoopBackOff: “back-off 10s restarting failed container=gitpod-helmet-installer pod=gitpod-helmet-installer_default(aebddb36-5983-497d-b823-9511ff009cb1)”
gitpod_1 | I1019 18:33:55.073360 49 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: fe62fa5e8ead561ef98a91ef6ee2c9a3b18ac65de0732d12e41d49af0fe90498

I tried it with the mount from certs and without. In the certificate from LE are the domains domain.com *.domain.com *.gitpod.domain.com *.ws.gitpod.domain.com

I also tried with a VM on my local Proxmox Node. There I get at least one web interface displayed. But because of the missing DNS records in the internal DNS I can’t get anywhere there either.

I don’t have an existing Kubernetes cluster running, so the Docker-Compose variant would be the preferred solution for me.

The following configuration would be desirable:

  • Ubuntu VM on my Proxmox cluster in the internal LAN.
  • Using the docker-compose, no previous Kubernetes setup is required.
  • HTTP / HTTPS over the ports: 8080 / 8443 externally accessible over the internet.
  • Certificates from LetsEncrypt

Can anyone help me with this ?

Thanks a lot

Best regards Björn

Could you please check

$ docker-compose exec gitpod kubectl get pods

There should be a pod named gitpod-helm-installer.

What does

$ docker-compose exec gitpod kubectl logs -f gitpod-helm-installer

say?

Hello @corneliusludmann,

thank you for the late feedback. It seems that I just managed to solve the problem. I had taken the smallest Hetzner Cloud VM. This one has only 20 GB. I have now extended the VM to 160 GB, so I could start the docker containers. I have now used the template with the Gitlab.

I have now noticed other problems. I cannot install an extension. I always get an error in the browser console.

image

And the download of the workspace is also not possible.

And the PHP Debugger is not working. How can I fix this?

Here is the Response for
$ docker-compose exec gitpod kubectl get pods

image

Thank you and best regards,

Bjoern

Könnte sich bitte jemand das Thema anschauen?!
Wir würden gerne Extension nutzen können.

Hi Bjoern!

How does the minio config look like? For instance, do you use a gateway to another storage?

If set, the access/secret keys from the minio values part should also go to the remote storage config:

      remoteStorage:
        kind: minio
        minio:
          ...
          accessKey: ...
          secretKey: ...

Other than that it’s hard to investigate remotely. The logs of server/workspace/proxy pods from the failed upload could give some hints about the underlying issue.

Hello Alex,

No, I do not use external storage.

I use the following Docker configuration, but without the GitLab instance in this config, I have only 3 GitLab OAuth instances in my configuration.

How can I provide you with the necessary logs here?

I started the whole thing again with GitLab because I saw that it is hosted in the GitLab Container Minio. Unfortunately, it didn’t change anything.

The question I’m asking is, what is the user’s password for the GitLab instance and for the Minio instance?

Last night I tried it with my own mini instance. I have some questions about it.

What would be the correct syntax to use an external Minio service?

$ cat values/minio.yaml 
gitpod:
  components:
wsSync:
  remoteStorage:
    child: minio
    minio:
      endpoint: ip-of-minio:9000
      accessKey: example-Key
      secretKey: super secret key
      tmpdir: /tmp

  minio:
    enabled: false

or is it:

components:
  remoteStorage:
    kind: minio
    minio:
      endpoint: https://domain.de:9000
      accessKey: example-Key
      secretKey: super secret key
      tmpdir: /tmp
      region: local

minio:
  enabled: false

How can I define a Minio Service that can be reached via HTTPS on port 443? I have provided the service in another docker container and then published the proxy container via TLS.

Do I have to create a container in the Minio Service or does the GitPod do it itself?

What also didn’t work well is to give the Minio service a TLS certificate directly into the container so that the service on port 9000 directly supports TLS. I got an error 400 back.

If you use the Gitpod charts directly, it’s without gitpod: on the top level (the Gitpod Docker image that is used in the docker-compose.yml file does it). You need the gitpod: top level for the helm charts in https://github.com/gitpod-io/gitpod/tree/master/install/helm that import the Gitpod charts.