ciburst.json
A project's ciburst.json at its repository root. The host's holds the fleet settings and the host's project settings; a member's holds only its project settings.
Pipeline mode merges the host's file over the defaults by top-level key: a key in the file replaces the default's whole value. The defaults for a project with id 12345678:
{
"name": "ci-12345678",
"gitlab": { "url": "https://gitlab.com", "projectIds": [12345678] },
"host": { "type": "scaleway-function", "region": "fr-par" },
"provider": { "type": "scaleway", "region": "fr-par" },
"vm": { "tag": "vm", "runtime": "instances", "image": "ubuntu:24.04", "slots": 2, "instanceTypes": ["DEV1-M", "DEV1-L"], "maxRuns": 4 },
"cache": { "type": "s3", "expireDays": 30 }
}
Fleet settings, in the host's file only:
| Key | Meaning |
|---|---|
name | prefix of every cloud resource and runner description; 2 to 20 lowercase letters, digits or hyphens, starting with a letter, so the bucket name <name>-cache-<project id> stays within the S3 limit of 63 |
gitlab | url (https) and projectIds: the host first; runners belong to the host, the VM runner's is enabled in the others, every project gets a webhook (section 8.6) |
host | type scaleway-function, region |
provider | type scaleway, region (every resource); optional zone (Instances, default <region>-1, must lie in region), registry and registryPublic (D28) |
vm | the VM runner, one object; a key left out takes its default: tag (vm; lowercase letters, digits and hyphens, not digits followed by a hyphen, the form of a lane key), runtime (instances, the only one), image (ubuntu:24.04, the job image when a job names none), slots (2), instanceTypes (DEV1-M, DEV1-L; types with a local root volume), maxRuns (VMs at once, 4), maxQueueS (0 to 3600, 90, D53), warmStart (true, D48) |
cache | type s3 (required: the bucket holds the runner object, the agent object, the intents and the fleet state), expireDays (30) |
Project settings, in every project's file, the host's included:
| Key | Meaning |
|---|---|
lanes[] | tag (lowercase letters, digits and hyphens, unique, not the VM runner's tag; the definition name <name>-<project id>-<tag> stays within 63 characters), image (the job image: linux/amd64 with /bin/sh, pullable without credentials), jobs (at least one job name pattern; a pattern belongs to one lane), vcpu (2, at most 6), memoryMiB (4096, at most 16384), storageMiB (10240, at most 10240), timeoutS (3600, at most 86400), waitTimeoutS (60), maxRuns (lane runs at once, 10) |
ignoreJobs | job name patterns of jobs on other runners (D49, D61); each non-empty |
Validation reports every error together, each naming its field. Keys of earlier configs are refused with a message naming the replacement, at the top level, in vm and in lanes[]: pools (vm and lanes), defaultPool (a job no lane and no ignoreJobs entry takes runs on the VM runner), stages (lanes take jobs by name), vmFirst and spillRunner (the VM runner carries only its tag), providers (Scaleway is the only provider). Any other unknown key is refused: at the top level of the host's and a member's file with <key>: unknown key; the keys are <the keys that file may hold>, in vm and in a lane by its name. ciburst-join refuses a fleet setting in a member's file: <key>: a fleet setting; it belongs in the host's ciburst.json.
Where the config takes effect: ciburst-setup writes the whole config to the fleet state (section 8.1), which the dispatcher reads within 30 s. The function's CIBURST_CONFIG holds the deployment view (Config::deployment_view: without ignoreJobs, the lanes' jobs and maxRuns, and vm.slots, vm.maxRuns, vm.maxQueueS, vm.warmStart), so a change of only these keys writes the fleet config and leaves the function as it is. A member's settings take effect with its next ciburst-join.
Credentials: on the developer path .local/scaleway.env (SCW_ACCESS_KEY, SCW_SECRET_KEY, SCW_DEFAULT_ORGANIZATION_ID, optional SCW_DEFAULT_PROJECT_ID) and .local/gitlab.env (GITLAB_TOKEN, scopes api and create_runner; a GITLAB_TOKEN in the environment wins); in pipeline mode the variables of section 11.3.