Kvindo™ Cloud Docs


Language

GitLab

A self-hosted GitLab instance and a runner registered against it, in two stages. This assumes the Networking example's demo folder, demo-subnet and its NAT floating IP already exist — the runner needs no floating IP of its own, because it reaches GitLab over the VPC and pulls Docker images through the VPC's NAT.

Stage 1 creates the instance. It needs a floating IP: the instance's DNS record is pointed at its public address, so without one GitLab is reachable from inside the VPC only. spec.version must be a release the platform publishes — the Console's picker lists them, and a later upgrade has to move one release at a time (no downgrades, no skipping).

Then apply it:

Getting the FQDN and a runner token

Installing GitLab takes tens of minutes, and GitLab changes are serialized per organization. Once kc get gitlab demo-gitlab -n demo reports stable, read the address the instance is actually served at — it is <recordName>-<ulid>.gitlab.kvindo.com, with the resource's own id appended, so it is never the bare name you asked for:

Open that address and log in as root with the rootPassword from stage 1. TLS already works — instances share a *.gitlab.kvindo.com wildcard certificate.

Now create the runner's own token in the instance: Admin → CI/CD → Runners → New instance runner. Tick Run untagged jobs (or give the runner tags that your jobs request) and copy the glrt-… token it shows you. That is the value runnerToken wants — the older instance-wide registration token is not accepted, because the runner authenticates with this token directly instead of registering with it.

Stage 2: the runner

Paste the FQDN and the token into the two placeholders and apply:

The runner VM is private — it needs no floating IP. Raise concurrency to run more jobs at once; spec.version must be a runner build the platform publishes, and may be omitted to take the default.

Deleting the GitlabRunner resource removes its VM but does not unregister it inside GitLab — delete the stale entry in the instance's runner list yourself, or it stays listed forever.


Related pages

Resource docs

More in this section

An unhandled error has occurred. Reload 🗙