Skip to content

Consider scenarios where project-less workspace might be beneficial

We discussed with @cwoolley-gitlab, and we tried to summarize where the project-less workspaces might be useful.

Scenario 1: Open-source contributor wants to use GitLab RD feature to work on GitHub repository

Cross-cutting concern - in both scenarios, we would have to solve how to inject GitHub secrets into the workspace (e.g. for pushing)

  • Scenario 1a) User is not required to have a GitLab project backing the workspace

    1. Go to create workspace screen at group/instance level
    2. Enter all required workspace information other than the devfile
    3. Enter the location of the devfile (e.g. <https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/devfile.yaml>)
    4. Enter the repository to clone (https://github.com/nodeshift-starters/devfile-sample.git)
    5. Hit create
  • Scenario 1b) User is required to have a GitLab project backing the workspace

    1. Create a new GitLab project
    2. Make it a fork of GitHub project
    3. To keep the fork in sync, you have to set up Repository mirroring | GitLab
    4. Go to the create workspace screen under the project
    5. Enter all required workspace information other than the devfile
    6. Hit create

Italics show steps that are different in each scenario.

Scenario 2: Enterprise where some groups don't host their repositories on GitLab (yet), but they want to automate workspace creation and management

  • Scenario 2a) User is not required to have a GitLab project backing the workspace

    1. Main points that would have to be considered:
    2. Creating allow list for the internally hosted devfile-project pair. This could be done by allowlisting locations or creating an additional entity (i.e. InternallyHostedDevfile) that only the Operator could create.
  • Scenario 2b) User is required to have a GitLab project backing the workspace

    1. Operator would have to orchestrate the following (compared to the project that's already on the GitLab instance)
      1. Create a new GitLab project
      2. Make it a fork of GitHub project
      3. To keep the fork in sync, you have to set up Repository mirroring | GitLab
Edited by Tomas Vik