Scaleway Integration
Overview
Scaleway cloud provider for managing compute instances, Kapsule Kubernetes clusters, object storage, and managed databases.
Instructions
CLI COMMANDS (use cloud_exec with 'scaleway')
CRITICAL: Always use cloud_exec('scaleway', 'command') for Scaleway commands, NOT terminal_exec!
The cloud_exec tool has your Scaleway credentials configured.
Discovery Commands:
- List projects:
cloud_exec('scaleway', 'account project list')
- List zones:
cloud_exec('scaleway', 'instance zone list')
- List instance types:
cloud_exec('scaleway', 'instance server-type list')
- List images:
cloud_exec('scaleway', 'instance image list')
Instance Management:
- List instances:
cloud_exec('scaleway', 'instance server list')
- Create instance:
cloud_exec('scaleway', 'instance server create type=DEV1-S image=ubuntu_jammy name=my-vm')
- With zone:
cloud_exec('scaleway', 'instance server create type=DEV1-S image=ubuntu_jammy name=my-vm zone=fr-par-1')
- Start/Stop/Reboot:
cloud_exec('scaleway', 'instance server start|stop|reboot <SERVER_ID>')
- Delete:
cloud_exec('scaleway', 'instance server delete <SERVER_ID>')
- SSH into server:
cloud_exec('scaleway', 'instance server ssh <SERVER_ID>')
Kubernetes (Kapsule):
- List clusters:
cloud_exec('scaleway', 'k8s cluster list')
- Create cluster:
cloud_exec('scaleway', 'k8s cluster create name=my-cluster version=1.28 cni=cilium')
- Get kubeconfig:
cloud_exec('scaleway', 'k8s kubeconfig get <CLUSTER_ID>')
- List pools:
cloud_exec('scaleway', 'k8s pool list cluster-id=<CLUSTER_ID>')
- Create pool:
cloud_exec('scaleway', 'k8s pool create cluster-id=<CLUSTER_ID> name=worker-pool node-type=DEV1-M size=3')
Object Storage:
- List buckets:
cloud_exec('scaleway', 'object bucket list')
- Create bucket:
cloud_exec('scaleway', 'object bucket create name=my-bucket')
Databases:
- List instances:
cloud_exec('scaleway', 'rdb instance list')
- Create instance:
cloud_exec('scaleway', 'rdb instance create name=my-db engine=PostgreSQL-15 node-type=DB-DEV-S')
TERRAFORM FOR SCALEWAY
Use iac_tool - provider.tf is AUTO-GENERATED, just write the resource!
Scaleway Terraform provider: https://registry.terraform.io/providers/scaleway/scaleway/latest/docs
INSTANCE EXAMPLE:
resource "scaleway_instance_server" "vm" {
name = "my-vm"
type = "DEV1-S"
image = "ubuntu_jammy"
# Optional: specify zone (defaults to fr-par-1)
# zone = "fr-par-1"
}
KUBERNETES (KAPSULE) CLUSTER:
resource "scaleway_k8s_cluster" "cluster" {
name = "my-cluster"
version = "1.28"
cni = "cilium"
}
resource "scaleway_k8s_pool" "pool" {
cluster_id = scaleway_k8s_cluster.cluster.id
name = "worker-pool"
node_type = "DEV1-M"
size = 3
}
OBJECT STORAGE BUCKET:
resource "scaleway_object_bucket" "bucket" {
name = "my-bucket"
}
DATABASE (RDB) INSTANCE:
resource "scaleway_rdb_instance" "db" {
name = "my-database"
engine = "PostgreSQL-15"
node_type = "DB-DEV-S"
is_ha_cluster = false
disable_backup = false
}
Common Scaleway Terraform resources:
scaleway_instance_server - Virtual machines
scaleway_instance_ip - Public IP addresses
scaleway_instance_security_group - Firewall rules
scaleway_k8s_cluster - Kubernetes clusters
scaleway_k8s_pool - Kubernetes node pools
scaleway_object_bucket - Object storage buckets
scaleway_rdb_instance - Managed databases
scaleway_vpc_private_network - Private networks
scaleway_lb - Load balancers
DO NOT write terraform{} or provider{} blocks - they are auto-generated!
When to use Terraform vs CLI:
- CLI (cloud_exec): Quick single resource ops, listing, inspection
- Terraform (iac_tool): Complex deployments, multi-resource setups, user explicitly requests 'terraform' or 'IaC'
CRITICAL RULES
- ALWAYS use
cloud_exec('scaleway', ...) NOT terminal_exec for Scaleway commands!
- Scaleway CLI uses
key=value syntax, NOT --key value for most parameters
- Common instance types: DEV1-S, DEV1-M, DEV1-L, GP1-XS, GP1-S, GP1-M
- Common images: ubuntu_jammy, ubuntu_focal, debian_bookworm, debian_bullseye
- Default region: fr-par, zones: fr-par-1, fr-par-2, fr-par-3
- Default SSH username for instances:
root
1---2name: scaleway3description: Scaleway cloud integration for managing instances, Kapsule Kubernetes clusters, object storage, and managed databases via CLI and Terraform4---56# Scaleway Integration78## Overview9Scaleway cloud provider for managing compute instances, Kapsule Kubernetes clusters, object storage, and managed databases.1011## Instructions1213### CLI COMMANDS (use cloud_exec with 'scaleway')1415**CRITICAL: Always use cloud_exec('scaleway', 'command') for Scaleway commands, NOT terminal_exec!**16The cloud_exec tool has your Scaleway credentials configured.1718**Discovery Commands:**19- List projects: `cloud_exec('scaleway', 'account project list')`20- List zones: `cloud_exec('scaleway', 'instance zone list')`21- List instance types: `cloud_exec('scaleway', 'instance server-type list')`22- List images: `cloud_exec('scaleway', 'instance image list')`2324**Instance Management:**25- List instances: `cloud_exec('scaleway', 'instance server list')`26- Create instance: `cloud_exec('scaleway', 'instance server create type=DEV1-S image=ubuntu_jammy name=my-vm')`27- With zone: `cloud_exec('scaleway', 'instance server create type=DEV1-S image=ubuntu_jammy name=my-vm zone=fr-par-1')`28- Start/Stop/Reboot: `cloud_exec('scaleway', 'instance server start|stop|reboot <SERVER_ID>')`29- Delete: `cloud_exec('scaleway', 'instance server delete <SERVER_ID>')`30- SSH into server: `cloud_exec('scaleway', 'instance server ssh <SERVER_ID>')`3132**Kubernetes (Kapsule):**33- List clusters: `cloud_exec('scaleway', 'k8s cluster list')`34- Create cluster: `cloud_exec('scaleway', 'k8s cluster create name=my-cluster version=1.28 cni=cilium')`35- Get kubeconfig: `cloud_exec('scaleway', 'k8s kubeconfig get <CLUSTER_ID>')`36- List pools: `cloud_exec('scaleway', 'k8s pool list cluster-id=<CLUSTER_ID>')`37- Create pool: `cloud_exec('scaleway', 'k8s pool create cluster-id=<CLUSTER_ID> name=worker-pool node-type=DEV1-M size=3')`3839**Object Storage:**40- List buckets: `cloud_exec('scaleway', 'object bucket list')`41- Create bucket: `cloud_exec('scaleway', 'object bucket create name=my-bucket')`4243**Databases:**44- List instances: `cloud_exec('scaleway', 'rdb instance list')`45- Create instance: `cloud_exec('scaleway', 'rdb instance create name=my-db engine=PostgreSQL-15 node-type=DB-DEV-S')`4647### TERRAFORM FOR SCALEWAY48Use iac_tool - provider.tf is AUTO-GENERATED, just write the resource!49Scaleway Terraform provider: https://registry.terraform.io/providers/scaleway/scaleway/latest/docs5051**INSTANCE EXAMPLE:**52```hcl53resource "scaleway_instance_server" "vm" {54 name = "my-vm"55 type = "DEV1-S"56 image = "ubuntu_jammy"57 # Optional: specify zone (defaults to fr-par-1)58 # zone = "fr-par-1"59}60```6162**KUBERNETES (KAPSULE) CLUSTER:**63```hcl64resource "scaleway_k8s_cluster" "cluster" {65 name = "my-cluster"66 version = "1.28"67 cni = "cilium"68}6970resource "scaleway_k8s_pool" "pool" {71 cluster_id = scaleway_k8s_cluster.cluster.id72 name = "worker-pool"73 node_type = "DEV1-M"74 size = 375}76```7778**OBJECT STORAGE BUCKET:**79```hcl80resource "scaleway_object_bucket" "bucket" {81 name = "my-bucket"82}83```8485**DATABASE (RDB) INSTANCE:**86```hcl87resource "scaleway_rdb_instance" "db" {88 name = "my-database"89 engine = "PostgreSQL-15"90 node_type = "DB-DEV-S"91 is_ha_cluster = false92 disable_backup = false93}94```9596**Common Scaleway Terraform resources:**97- `scaleway_instance_server` - Virtual machines98- `scaleway_instance_ip` - Public IP addresses99- `scaleway_instance_security_group` - Firewall rules100- `scaleway_k8s_cluster` - Kubernetes clusters101- `scaleway_k8s_pool` - Kubernetes node pools102- `scaleway_object_bucket` - Object storage buckets103- `scaleway_rdb_instance` - Managed databases104- `scaleway_vpc_private_network` - Private networks105- `scaleway_lb` - Load balancers106107DO NOT write terraform{} or provider{} blocks - they are auto-generated!108109**When to use Terraform vs CLI:**110- **CLI (cloud_exec)**: Quick single resource ops, listing, inspection111- **Terraform (iac_tool)**: Complex deployments, multi-resource setups, user explicitly requests 'terraform' or 'IaC'112113### CRITICAL RULES114- **ALWAYS** use `cloud_exec('scaleway', ...)` NOT `terminal_exec` for Scaleway commands!115- Scaleway CLI uses `key=value` syntax, NOT `--key value` for most parameters116- Common instance types: DEV1-S, DEV1-M, DEV1-L, GP1-XS, GP1-S, GP1-M117- Common images: ubuntu_jammy, ubuntu_focal, debian_bookworm, debian_bullseye118- Default region: fr-par, zones: fr-par-1, fr-par-2, fr-par-3119- Default SSH username for instances: `root`