Provider example
Scaleway — NodePool, NodeClass & Workload
Full manifests and kubectl commands for Scaleway.
Replace placeholders
<HOST_TAILSCALE_IP>→ Kind control-plane Tailscale IPyour-scaleway-project-id→ Scaleway project ID
Ensure secrets exist: tailscale-auth, scaleway-credentials.
1. Create secrets
# Tailscale auth key (required by NodeClass)
kubectl create secret generic tailscale-auth --from-literal=authkey="<YOUR_TAILSCALE_AUTHKEY>" -n default
# Scaleway credentials (SCW_SECRET_KEY required; SCW_ACCESS_KEY recommended)
kubectl create secret generic scaleway-credentials \
--from-literal=SCW_SECRET_KEY="<YOUR_SCW_SECRET_KEY>" \
--from-literal=SCW_ACCESS_KEY="<YOUR_SCW_ACCESS_KEY>" \
-n default
2. NodePool
apiVersion: cloudburst.io/v1alpha1
kind: NodePool
metadata:
name: scaleway-nodepool
namespace: default
spec:
requirements:
regionConstraint: "EU"
arch: ["x86_64"]
maxPriceEurPerHour: 0.15
allowedProviders: ["scaleway"]
limits:
maxNodes: 3
minNodes: 0
template:
labels:
cloudburst.io/nodepool: "scaleway-nodepool"
cloudburst.io/provider: "scaleway"
disruption:
ttlSecondsAfterEmpty: 60
ttlSecondsUntilExpired: 3600
weight: 1
3. NodeClass
apiVersion: cloudburst.io/v1alpha1
kind: NodeClass
metadata:
name: scaleway-nodeclass
namespace: default
spec:
scaleway:
zone: "fr-par-1"
projectID: "your-scaleway-project-id"
image: "ubuntu_jammy"
apiKeySecretRef:
name: scaleway-credentials
key: SCW_SECRET_KEY
join:
hostApiServer: "https://<HOST_TAILSCALE_IP>:6443"
kindClusterName: "cloudburst"
tokenTtlMinutes: 60
tailscale:
authKeySecretRef:
name: tailscale-auth
key: authkey
bootstrap:
kubernetesVersion: "1.34.3"
4. Workload (triggers burst; targets Scaleway nodes)
apiVersion: v1
kind: Pod
metadata:
name: scaleway-workload
namespace: default
spec:
containers:
- name: workload
image: busybox:1.36
command: ["sleep", "infinity"]
resources:
requests:
cpu: "1500m"
memory: "2Gi"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cloudburst.io/provider
operator: In
values: ["scaleway"]
5. Apply and verify
# Save the manifests above to scaleway-example.yaml, then:
kubectl apply -f scaleway-example.yaml
# Watch NodeClaim creation
kubectl get nodeclaims -w
# Once node is Ready, verify pod
kubectl get pods -o wide
kubectl get nodes -l cloudburst.io/provider=scaleway