一键导入
sapcc-quota
Limes quota and usage management for SAP Converged Cloud. Triggers: quota, usage, capacity, resource limit, how much, running out, limes, burst
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Limes quota and usage management for SAP Converged Cloud. Triggers: quota, usage, capacity, resource limit, how much, running out, limes, burst
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Audit trail investigation on SAP Converged Cloud using Hermes. Triggers: audit, who changed, what happened, hermes, events, compliance, CADF, activity log, trace action, who did, what was done, event history
Autoscaling operations via Castellum. Triggers: autoscaling, castellum, resize, scaling, threshold, auto-resize, capacity management. NOT for: manual quota changes (use sapcc-quota/Limes).
Bare metal node operations via Ironic. Triggers: baremetal, bare metal, ironic, node, provision state, hardware, physical server. NOT for: virtual servers (use sapcc-compute/Nova).
Manage compute instances on SAP Converged Cloud. Covers server lifecycle, flavor selection, status transitions, and cross-service correlation with networking and storage. Use when: listing VMs, checking server status, debugging instance issues, performing server actions (start/stop/reboot), selecting flavors, or investigating why a server won't start. NOT for container workloads (use sapcc-registry) or bare metal.
Archer endpoint service management for private network connectivity in SAP Converged Cloud. Triggers: endpoint service, private link, archer, private connectivity, service endpoint, internal access, cross-project access
DNS zone and recordset operations via Designate. Triggers: dns, zone, recordset, domain, designate. NOT for: network ports, floating IPs (use sapcc-networking).
| name | sapcc-quota |
| description | Limes quota and usage management for SAP Converged Cloud. Triggers: quota, usage, capacity, resource limit, how much, running out, limes, burst |
| version | 1.0.0 |
| metadata | {"service":["limes"],"task":["capacity","plan","audit"],"persona":["platform-engineer","developer"]} |
Limes is SAP CC's central quota management service. Not part of vanilla OpenStack. It enforces hierarchical resource quotas across cluster, domain, and project levels.
| Tool | Purpose | Key Parameters |
|---|---|---|
limes_get_project_quota | Get quota and usage for a project | service (compute, volumev2, network, dns, sharev2, object-store, loadbalancing, keppel), resource |
limes_get_domain_quota | Get domain-level quota allocation | service, resource |
limes_get_cluster_capacity | Get cluster-wide capacity/usage | service, resource |
All Limes tools are read-only. Quota changes require Elektra dashboard or cloud-admin API access.
service filter, returns ALL service quotas (can be large)Cluster Capacity
└─ Domain Quota (sum of project quotas ≤ domain quota)
└─ Project Quota (what a project is allowed to consume)
└─ Usage (what's actually consumed)
Constraints:
This is the highest-gotcha-density skill. Read all of these before interpreting Limes data.
RAM quota and usage are reported in MiB. A quota of 51200 = 50 GiB. A quota of 131072 = 128 GiB. Always convert: value / 1024 = GiB.
physical_usage includes backend overhead: snapshots, replicas, metadata, copy-on-write reserves. A volume with usage=100 GiB might have physical_usage=150 GiB. This is not a bug.
Zero quota = resource is not available to this project. It's explicitly disabled. If you see quota: 0, usage: 0, the project cannot use that resource at all.
Rare. Usually only at domain level for internal/platform domains. Means no hard cap enforced. Do not confuse with "no quota set."
Burst allows temporary over-quota usage. It's a loan from unused cluster capacity. Limes can reclaim it. If burst_usage > 0, the project is currently exceeding its base quota and relying on burst — this is fragile and should be resolved.
limes_get_project_quota needs both domain_id AND project_id. Get them from keystone_token_info first. The token response includes project.domain.id and project.id.
Limes uses UUIDs, not names. Always resolve via keystone_token_info or keystone_list_projects.
service=compute only returns compute resources. Omit the filter to see ALL services. Don't filter unless you know exactly what you want — you'll miss relevant data.
There's no Limes alert. You calculate it: usage / quota * 100. Alert thresholds: >80% = warning, >90% = critical, 100% = exhausted (new resource creation blocked).
Cluster capacity shows total platform resources. Your project gets a fraction. Don't confuse "cluster has 10TB" with "I can use 10TB."
If a project needs more quota, someone must request a raise. This is often a manual approval process. Limes just enforces limits — it doesn't grow them.
volumes_vmware, volumes_ceph, capacity_vmware, capacity_ceph — each volume backend has its own quota line. A project might have plenty of ceph quota but zero vmware quota.
Running resources continue to run even if quota is 100% used. But you cannot create NEW resources. Existing VMs keep running, existing volumes stay mounted.
1. keystone_token_info → get domain_id, project_id
2. limes_get_project_quota(domain_id, project_id)
3. For each resource: calculate usage/quota percentage
4. Flag anything > 80%
Check three resources simultaneously:
compute/cores — flavor vCPUs ≤ (quota - usage)compute/ram — flavor RAM (in MiB!) ≤ (quota - usage)compute/instances — at least 1 instance slot availableIf any is insufficient, the server creation will fail with a quota error.
1. keystone_token_info → domain_id, project_id
2. limes_get_project_quota(domain_id, project_id) [no service filter]
3. List all services and resources with quota, usage, percentage
1. limes_get_domain_quota(domain_id)
2. Compare projects_quota (sum allocated to projects) vs domain_quota
3. If projects_quota ≈ domain_quota → no room to grow any project
1. limes_get_cluster_capacity(service="compute")
2. Shows total cluster capacity, domains_quota, usage
3. capacity - domains_quota = unallocated headroom
| Field | Meaning |
|---|---|
quota | Maximum allowed for this resource in this project/domain |
usage | Currently consumed (logical — what the user sees) |
physical_usage | Actually consumed on backend (includes overhead, replicas, snapshots) |
burst_usage | Amount currently over-quota via burst allowance |
backend_quota | What's actually configured in the backend service (should match quota) |
projects_quota | (Domain/cluster level) Sum of all child project quotas |
capacity | (Cluster level) Total physical capacity of the platform |
{
"service": "compute",
"resources": [
{
"name": "cores",
"quota": 64,
"usage": 48,
"burst_usage": 0
},
{
"name": "ram",
"quota": 131072,
"usage": 98304,
"burst_usage": 0
}
]
}
Translation: Project has 64 cores quota, using 48 (75%). RAM quota is 128 GiB (131072 MiB), using 96 GiB (98304 MiB, 75%).
usage vs quota — is it really at 100%?burst_usage > 0) — burst may have been reclaimedinstances, not coresNormal. Causes:
Not a problem unless physical_usage is growing unboundedly.
Limes periodically syncs to backend services. Temporary mismatch during sync is normal. Persistent mismatch (>1 hour) indicates a Limes issue — escalate.
Quota data reveals project sizing, resource allocation strategy, and capacity headroom. Treat as internal/confidential:
Only query at the scope you have legitimate access to. The MCP server enforces token-based access, but be aware that quota data you return to users should be scope-appropriate.
| Need | Service | Tool |
|---|---|---|
| Actual compute instances consuming quota | Nova | nova_list_servers |
| Actual volumes consuming storage quota | Cinder | cinder_list_volumes |
| Actual ports/networks consuming network quota | Neutron | neutron_list_ports, neutron_list_networks |
| Who changed quota settings | Hermes | hermes_list_events(target_type=resources/project) |
| Current project/domain context | Keystone | keystone_token_info |
| User need | Action |
|---|---|
| Mapping services to quota resource names | Read quota-services-mapping.md |