Move GitLab development to the Cloud

Description

Working with GDK is getting more and more complex. It currently takes around an hour to set up GDK or GCK (GitLab Compose Kit) on a Debian virtual machine or local desktop.

Things are much more complex when someone wants to start working on AutoDevOps or Container Registry. Setting up your development environment might take much longer in that case, depending on what is needed for the development.

GDK also has some bugs, and because we are not using containers by default, everyone has a slightly different environment that is susceptible for configuration drift. If someone wants to make something "custom" in GDK, add new features to GDK it takes long to actually hack something together and this becomes much more complex than it used to be in the past.

This might not scale well.

Because we support two environments (Linux and MacOS) new projects like @ayufan's GitLab Compose Kit are not getting more traction because using containers is still not a great experience for MacOS users.

Proposal

  • Move GDK development to the cloud.
  • Make it easy to deploy a fresh GDK in one command or a button click.
  • Make it possible to enable / disable GDK features with one command.
  • Make it possible to still develop locally (ex. use Fuse / SSHFS, rsync to share files)
  • Make GDK more similar to production environment than it is now
  • Support uniform environments, only support Linux installation (preferably in the cloud) with containers
  • Make it easy to use the same approach for community contributors

This is not going to be trivial change, and more mental than technological change is needed here, however it might simplify a lot of things. This does not need to happen over-night too.

Credits: I discussed this with @jacobvosmaer-gitlab and @ayufan during Capetown Summit and a few other people whose names I don't remember right now.

/cc @marin @DylanGriffith @stanhu

Edited by Grzegorz Bizon