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.
- In the project that ran
ciburst-setup(the host): add the project variableCIBURST_INVITEwith the joining project's id or path (protected, environment scopeciburst), runciburst-inviteand downloadjoin-code.txtfrom 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 readsjoin code for project <id>, valid until <time>, in the artifact join-code.txt. - In the joining project: include the component with
role: member:include: - component: gitlab.com/ciburst/ciburst/ciburst@1 inputs: role: member - Optional: the joining project's own
ciburst.jsonwith onlylanesandignoreJobs(section Lanes); fleet settings such asvmorproviderbelong to the host and are refused. - Add two project variables, protected, "Masked and hidden", environment scope
ciburst:CIBURST_JOIN(the code) andCIBURST_GITLAB_TOKEN(a personal access token of an Owner of this project withapiandcreate_runner). No Scaleway credentials. - Run the manual job
ciburst-join(about a minute).Checkits log printslane <tag> (<image>)per lane and ends withjoined fleet <name>; Settings, CI/CD, Runners lists<name>-vmand 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.