Scaleway CLI
Manage Scaleway cloud resources from the terminal
Description
scw is the official command-line interface for Scaleway, the European cloud provider. It provides full access to Scaleway products including instances, Kubernetes (Kapsule), serverless functions and containers, managed databases, object storage, and more, all from the terminal.
Install
brew install scwAI Summary
Official Scaleway CLI (scw) for managing European cloud infrastructure including instances, Kubernetes, serverless, databases, and object storage from the terminal.
Capabilities
- + Create and manage cloud instances and bare metal servers
- + Manage Kapsule Kubernetes clusters
- + Deploy serverless functions and containers
- + Provision managed databases (PostgreSQL, MySQL, Redis)
- + Manage object storage buckets and DNS records
- + Configure VPCs, security groups, and load balancers
Use When
- → Managing Scaleway cloud infrastructure from the command line
- → Deploying applications on European cloud infrastructure
- → Scripting Scaleway resource provisioning and management
- → Need GDPR-compliant European cloud hosting management
Avoid When
- x Not using Scaleway as your cloud provider
- x Need multi-cloud infrastructure management
- x Prefer infrastructure as code over imperative CLI commands
Usage Patterns
Initialize the CLI
scw init Interactive setup of credentials, default region, and project
Create an instance
scw instance server create type=DEV1-S image=ubuntu_jammy name=my-server Creates a DEV1-S instance with Ubuntu 22.04
List all instances as JSON
scw instance server list -o json Lists all instances with full details in JSON format
Create a Kubernetes cluster
scw k8s cluster create name=my-cluster version=1.29 cni=cilium Creates a Kapsule cluster with Cilium CNI
Input / Output
Typical Pipelines
scw instance server list -o json | jq '.[].public_ip.address' to extract all server IPs scw k8s cluster install-kubeconfig CLUSTER_ID && kubectl get pods to connect to a Kapsule cluster scw instance server list -o json | jq '.[] | select(.state=="running") | .name' to find running instances