SkaleData Docs

Cloud quotas

The per-region cloud quotas a SkaleData cluster needs, their fresh-account defaults, and the command to raise each one.

Every SkaleData cluster runs in your cloud account, so it consumes your account's quota. Fresh accounts ship with limits that are smaller than one cluster needs — on Azure pay-as-you-go, a new subscription grants 10 total vCPUs against a cluster baseline of roughly 32. SkaleData checks these limits when you create a cluster or add an application and refuses at submit, with the quota code and the increase command, rather than letting terraform apply fail 15 minutes later.

This page lists what a cluster needs so you can request the increases up front.

What one cluster costs

ResourcePer clusterWhy
Base node pool2 nodes x 4 vCPU = 8 vCPURuns ingress, system add-ons, and anything not pinned to a dedicated pool.
CNPG data pool1 node x 8 vCPUThe shared PostgreSQL cluster's dedicated, tainted pool.
Airflow control-plane pool2 nodes x 8 vCPU = 16 vCPUOne dedicated pool per Airflow instance, so a task-pod burst can't evict the scheduler. The Small environment size runs a single node (8 vCPU); every other size runs two for node-level HA.
Task autoprovisioning headroom1 node x 4 vCPUKubernetesExecutor task pods provision nodes on demand. Without headroom the cluster comes up and no DAG can be scheduled.
Network1 VPC or virtual network, 1 NAT gateway, 1 egress IPOne isolated network per cluster.

A cluster with Airflow needs about 36 vCPU in one region, before any worker pools. Worker pools are sized separately when you pick a worker size, and add their own floor on top.

Amazon Web Services

Non-compute limits bite before vCPU does on AWS: the defaults are five per region, and your account's default VPC already holds one VPC slot and one internet gateway slot. That makes cluster four or five the one that fails.

QuotaCodeServiceDefaultPer cluster
Running On-Demand Standard instances (vCPU)L-1216C47Aec25–96~36 with Airflow
VPCs per regionL-F678F1CEvpc51
EC2-VPC Elastic IPsL-0263D0A3ec251
Internet gateways per regionL-A4707A72vpc51
EKS clustersL-1194D53Ceks1001

Note the service code: VPC and internet-gateway quotas live under vpc, not ec2.

Check a current limit:

aws service-quotas get-service-quota \
  --service-code vpc --quota-code L-F678F1CE --region us-east-1

Request an increase:

aws service-quotas request-service-quota-increase \
  --service-code vpc --quota-code L-F678F1CE \
  --desired-value 20 --region us-east-1

Reading a quota requires servicequotas:GetServiceQuota on the SkaleData deployer role. Roles created before that permission was added don't have it — SkaleData then skips the AWS quota checks rather than guessing, so an apply can still fail on a limit it couldn't read. Re-run skale cloud setup --provider aws to refresh the role.

Google Cloud

QuotaMetricScopeDefaultPer cluster
CPUsCPUSRegion24~36 with Airflow
CPUs (all regions)CPUS_ALL_REGIONSGlobal32~36 with Airflow
VPC networksNETWORKSGlobal51
Cloud RoutersROUTERSGlobal101
In-use IP addressesIN_USE_ADDRESSESRegion82
Service accounts—Project100~4

The default network counts against NETWORKS, so a fresh project fits four more clusters before that limit binds. The service-account limit binds at roughly 24 clusters in one project; SkaleData warns in its logs as you approach it but never blocks on it, because no API reports that limit.

Check current usage and limits:

gcloud compute project-info describe --project PROJECT_ID \
  --format="table(quotas.metric,quotas.usage,quotas.limit)"

gcloud compute regions describe us-central1 --project PROJECT_ID \
  --format="table(quotas.metric,quotas.usage,quotas.limit)"

Request an increase from the quotas page for your project, filtered to the metric you need.

Microsoft Azure

QuotaNameDefaultPer cluster
Total regional vCPUscores10 on pay-as-you-go~36 with Airflow
Family vCPUs (for example standardDSv5Family)per family10 on pay-as-you-go24 general purpose
Virtual networksVirtualNetworks10001
Standard public IPv4 addressesIPv4StandardSkuPublicIpAddresses201
NAT gatewaysNatGateways1001

Azure enforces both a per-family vCPU limit and a total regional limit, and a new pay-as-you-go subscription grants 10 of each. That is below one cluster's base pool plus data pool, so a quota increase is the first step on a new subscription.

Azure also restricts which VM generations a subscription can run. SkaleData resolves each pool's VM size against what your subscription actually offers, so a subscription with only v7-generation sizes still provisions — you don't need to request the exact sizes named here, only enough vCPU.

Check current usage:

az vm list-usage --location eastus -o table
az network list-usages --location eastus -o table

Request an increase from the Quotas blade in the portal, or with the CLI:

az quota update --resource-name standardDSv5Family \
  --scope /subscriptions/SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/eastus \
  --limit-object value=64

When a check can't run

The quota pre-flight never blocks a cluster on a quota it couldn't read. A cloud-API error, a missing permission, or a quota your provider doesn't report all cause SkaleData to skip that check and continue — provisioning re-checks everything and remains the authoritative gate. So a create that succeeds is not proof that every limit was verified. If an apply fails on a quota error, compare the tables above against your account and request the increase.

On this page