Scaleway provider
The Scaleway provider gives your BigFleet fleet machines to run on. When BigFleet decides your clusters need more capacity, the provider creates Scaleway servers; when the fleet scales in, it drains and deletes them. You point it at a Scaleway project, a zone, and a base image, and it provisions capacity automatically — no manual server management, no node-pool babysitting.
It serves two substrates, one per process, selected by --substrate:
- Instances →
ON_DEMAND(--substrate=instances) — cloud VMs the provider can tear down. ImplementsDelete. - Elastic Metal →
BARE_METAL(--substrate=elastic-metal) — physical servers returned to a free pool.DeleteisUnimplemented. The real backend provisions over the Scaleway Baremetal API (order + OS install); the in-memory fake backs the bare-metal conformance profile.
You run one process per zone (Scaleway’s fr-par-1, nl-ams-1,
pl-waw-1, …), and one substrate per process, next to BigFleet. Each process
owns a single zone’s capacity for a single substrate, and BigFleet dials it to
request, configure, drain, and delete machines as demand moves.
How it behaves
- Hardened and operable. It ships as a hardened container image and a Helm chart, runs non-root on a distroless, read-only root filesystem, and exposes liveness/readiness probes, Prometheus metrics, and structured logs. See Observability.
- Certified. It passes the full BigFleet provider conformance program — 93 certified behaviors — credential-free on every change, plus an extension suite that asserts stronger invariants. See Certification.
- Conservative by default. A
Createblocks until the server is actually running, the price you see is the real published Scaleway rate converted to USD, and a failed bootstrap or drain surfaces as a hard failure rather than a silently-broken node. Capacity it doesn’t own, it never touches. These invariants come fromproviderkit, the shared kit every BigFleet provider wraps.
What you need
To run it against a real project, have these ready (the Credentials page walks through the API key):
- A Scaleway project and the zone you want capacity in (one process per zone, one substrate per process).
- An IAM-application API key — an access key + secret key scoped to that one
project (
InstancesFullAccess+BlockStorageFullAccess— the latter is required so Delete can remove the boot volume; plusBareMetalFullAccessfor Elastic Metal). See Credentials. - A base image that joins your cluster (e.g.
ubuntu_jammy). The provider creates a server from it with a generic pre-bindinguser_data, which installs a small on-host agent; at Configure that agent dials the provider’s mutually-authenticated TLS bootstrap channel, receives the per-cluster bootstrap blob, and applies it. The model is in Configuration.
Scaleway auth is API-key based — an IAM application, a least-privilege policy, and an API key — not the role/instance-profile model of a hyperscaler. There are no roles to assume; the access/secret key pair is the entire authorisation surface.
Deploy it
The provider is a published container image plus a Helm chart — you don’t build from source. The path is:
- Create the least-privilege API key (the Terraform in
deploy/iam/mints the IAM application, policy, and key) and store the access/secret key + project id as a Kubernetes Secret. The Credentials page has the exact steps. - Install the Helm chart, one release per zone, pointing it at your zone, substrate, base image, and your offerings (the quota of capacity it may provision). Enable durable state on a PersistentVolume so bindings survive restarts.
From here, see Install & deploy for the full path, Configuration for offerings and the bootstrap model, and Pricing for the EUR→USD conversion and why interruption probability is a genuine zero.