Skip to content

PoC for Cell 1.0

Overview

With the proposal for Cells 1.0 we would like to do a small PoC built on top of the rules router PoC so that we test basic GitLab functionality and see if things work as expected.

The PoC is limited, it should not care about any uniqueness like user, project, group. The only uniqness is the IDs, we can bump all IDs in cell 2 by 1M.

We've discussed this in sync in 👉 https://www.youtube.com/watch?v=OiZSEhryXZ0&feature=youtu.be

Results

Complexity of Cell 1.0 Proposal

The proposal as it exists right now in !139519 (merged) is achievable and gives us the share-nothing model that we want for all of the GitLab stack. There are nor major hurdles from a technical perspective to achieve this goal, and from our PoC we saw that it's possible.

Usage of secret-based routing

Using secret-based routing will get us 80% of the way there, we are still going to need classification for things like git basic auth, and SSH. This complicates it a little bit and will require us to extract a cluster-wide service (global service) in Cell 1.0 so that we can classify routes accordingly. We'll be testing this in #438662 (closed)

Action Items

Reference

Specific Patches

To make the PoC work we had to apply the following patches:

Known Broken Features

Testing Plan

  1. Go to gitlab.steveazz.xyz
  2. Log into cell 1
  3. Create Project
  4. Create PAT
  5. Send API requests to gitlab.steveazz.xyz with cell 1 PAT
  6. Log into cell 2
  7. Create Project
  8. Create PAT
  9. Send API requests to gitlab.steveazz.xyz with cell 2 PAT
Edited by Steve Xuereb