ciburst

Join an existing setup

One setup serves many projects, from any group or organization: they share its dispatcher and its VM runner, so a VM's paid hour serves all of them. Each project keeps its own lanes and ignoreJobs. Jobs of all projects share the VMs, and VM jobs run privileged: join only projects you trust.

  1. In the project that ran ciburst-setup (the host): add the project variable CIBURST_INVITE with the joining project's id or path (protected, environment scope ciburst), run ciburst-invite and download join-code.txt from its artifacts (Maintainers and Owners can; the code never enters the log). The code is valid for 7 days; treat it as a secret.Checkthe log reads join code for project <id>, valid until <time>, in the artifact join-code.txt.
  2. In the joining project: include the component with role: member:
    include:
      - component: gitlab.com/ciburst/ciburst/ciburst@1
        inputs:
          role: member
    
  3. Optional: the joining project's own ciburst.json with only lanes and ignoreJobs (section Lanes); fleet settings such as vm or provider belong to the host and are refused.
  4. Add two project variables, protected, "Masked and hidden", environment scope ciburst: CIBURST_JOIN (the code) and CIBURST_GITLAB_TOKEN (a personal access token of an Owner of this project with api and create_runner). No Scaleway credentials.
  5. Run the manual job ciburst-join (about a minute).Checkits log prints lane <tag> (<image>) per lane and ends with joined fleet <name>; Settings, CI/CD, Runners lists <name>-vm and one runner per lane; the next pipeline runs on them.

A change of the member's lanes or ignoreJobs takes effect with the next ciburst-join, with a code that has not expired.

Leave: run ciburst-leave in the member; it removes the member's lanes, runners, webhook and record. The host's ciburst-destroy refuses while members are joined.