Skip to content

Quotas ​

A quota is a limit on how much of a resource you can use. Each tenant has a limit per resource, such as instances, vCPUs or block storage. A create that would take a tenant over a limit is refused with a quota error, and nothing is created.

This page covers:

Tenant and organization limits ​

Every tenant has its own limit for each resource. Your organization also has a pool per resource: an organization-level limit across all of its tenants. Each pool works in one of two ways:

  • Overcommit. The organization limit caps the total usage of all tenants together. The tenants' limits may add up to more than the organization limit, so a tenant can use more while the others use less.
  • Partition. The organization limit is divided between the tenants. Their limits may not add up to more than the organization limit.

A create must fit both its tenant's limit and the organization pool.

Resources ​

The portal groups the resources as below. The key is the resource's resourceType, which the fm CLI and the Terraform provider use.

Storage limits are in GB, as the platform reports them. Memory (ram) is counted in MB and shown in GB, where 1 GB = 1024 MB. Block storage follows the volume sizes described on the Block Volumes page.

A limit of 0 means no allowance: you cannot create that resource. It never means unlimited.

When usage is shown as —, it is unknown right now, for example because it could not be read. It does not mean zero. Your limit still applies.

Compute ​

ResourceKeyUnitCounts
InstancesinstancecountInstances
vCPUsvcpucountvCPUs across your instances
MemoryramMBMemory across your instances, shown as GB
Web serverswebservercountManaged web servers
Web server storagewebserver_storageGBStorage of your managed web servers

Custom images ​

ResourceKeyUnitCounts
ImagesimagecountCustom images you have uploaded
Image storageimage_storageGBStorage used by your custom images

These two limits are enforced by the compute service and cannot be raised with a quota request. To raise them, contact support.

The portal and fm show these rows only when your tenant has an image allowance. Terraform always returns the image and image_storage keys, with a limit of 0 when there is no allowance.

Storage ​

ResourceKeyUnitCounts
Block storagevolumeGBTotal size of your volumes
Block volumesvolume_countcountNumber of volumes
SnapshotssnapshotcountSnapshots

Network ​

ResourceKeyUnitCounts
NetworksnetworkcountNetworks
SubnetssubnetcountSubnets
Public IPspublic_ipcountPublic IPs
Load balancersload_balancercountLoad balancers. Listeners and pools are not counted.
Application gatewaysapp_gatewaycountApplication gateways
Security groupssecurity_groupcountSecurity groups you create. Groups the platform creates for managed services, Kubernetes or application gateways are not counted.

Managed databases ​

ResourceKeyUnitCounts
DatabasesdatabasecountManaged databases
Database storagedatabase_storageGBStorage of your databases

Managed cache ​

ResourceKeyUnitCounts
Cache instancescachecountManaged cache instances
Cache memorycache_memoryGBMemory of your caches
Cache storagecache_storageGBStorage of your caches

Managed messaging ​

ResourceKeyUnitCounts
Message brokersmessagingcountManaged message brokers
Message broker storagemessaging_storageGBStorage of your message brokers

Object storage ​

ResourceKeyUnitCounts
Object storageobject_storageGBObject storage in your buckets
BucketsbucketscountBuckets
S3 credentialss3_credentialscountS3 credentials

Container registry ​

ResourceKeyUnitCounts
Registry storageregistry_storageGBOne allowance across your registry and its pull-through caches together

Kubernetes ​

ResourceKeyUnitCounts
Kubernetes clusterskubernetes_clustercountManaged Kubernetes clusters
Kubernetes nodeskubernetes_nodecountWorker nodes across your clusters

Kontor ​

ResourceKeyUnitCounts
Kontor userskontor_usercountKontor users
Kontor mail storagekontor_mail_storageGBMail storage
Kontor file storagekontor_file_storageGBFile storage
Kontor domainskontor_domaincountKontor domains

Default limits ​

A new tenant starts with the platform's default limits. Frostmoln sets the defaults and can change them, so they are not listed here. To see the limits that apply to you, view a tenant's quotas: a new tenant shows the defaults.

If the defaults are too small for something you plan to run, such as a production Kubernetes cluster with large worker nodes, request an increase before you create it.

View your quotas ​

Portal. Choose Quotas in the main navigation. The page shows the limits and usage of the current tenant, and the organization's pools with a per-tenant breakdown.

fm CLI. The commands act on the active tenant:

bash
fm tenant quota
fm tenant quota -o json
fm tenant quota --org

fm tenant quota prints a table. -o json prints {"scope":"tenant","quotas":[…]}, where each quota has resourceType, label, category, used, limit and unit; unknown usage is null. With --org, the JSON also has orgId and tenants. --org shows the organization's pools, with an ALLOCATED column for how much of each pool is allocated to tenants. It needs a signed-in user; it does not work with an API key. See fm tenant.

Terraform. The frostmoln_tenant_quotas data source reads the quotas of the provider's tenant. quotas is keyed by resource key. used is null when usage is unknown, so check for that before you calculate with it:

hcl
data "frostmoln_tenant_quotas" "this" {}

locals {
  vcpu = data.frostmoln_tenant_quotas.this.quotas["vcpu"]
}

output "vcpu_left" {
  # Null when usage is unknown, rather than a number that may be wrong.
  value = local.vcpu.used == null ? null : local.vcpu.limit - local.vcpu.used
}

Request an increase ​

Portal. Choose Request increase on a quota row, or go to Support → Quota requests.

fm CLI.

bash
fm tenant quota request vcpu 64 --reason "Production Kubernetes cluster"
fm tenant quota request volume 2000 --org --reason "Data warehouse"

The arguments are <resource-type> (the key) and <new-limit>. Give the new limit in the resource's own unit: MB for Memory, GB for storage, otherwise a count. Add --org to request a change to the organization pool instead of the tenant's limit.

  • A tenant request is decided at once. It is approved if the new limit fits within what the organization pool allows, and denied with a reason if it does not. The portal shows the largest value that would be approved, and fm refuses a higher value before it sends the request.
  • An organization request goes to Frostmoln for review and stays pending until it is decided.
  • A lower tenant limit is applied at once, even below what the tenant uses now. After that, new creates of that resource are refused. fm tenant quota request refuses a lower value unless you pass --yes.
  • You can have only one pending request per resource at a time.
  • --org needs a signed-in user, both to view and to request. It does not work with an API key.
  • With an API key, a tenant request (and cancelling one) needs the quotas:write scope; compute:write is not enough. A workload identity cannot request quota changes. See API keys.

Custom image limits cannot be requested this way; contact support.