Page cover
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Workload Rules

Three object types are admission-checked and billed: Pods, PersistentVolumeClaims (PVCs), and Services of type LoadBalancer.

Pods

Required: resource limits

Every container must end up with resources.limits.cpu and resources.limits.memory set. If you omit them, the platform auto-fills cpu: 100m / memory: 128Mi before your Pod is validated — so in practice you rarely need to set them yourself for small workloads, but if you set limits explicitly, both cpu and memory must be present together, or the request is rejected (see Troubleshooting, POD6011/POD6012/POD6013).

Practical rule: always set both cpu and memory limits explicitly on containers that need more than the 100m/128Mi default — don't rely on partial limits.

resources:
  limits:
    cpu: "2"
    memory: "8Gi"
  requests:
    cpu: "2"
    memory: "8Gi"

GPU requests

  • Request GPUs the normal Kubernetes way (resources.limits["nvidia.com/gpu"]) with a node selector identifying the GPU model.

  • If you request a MIG-sliced GPU (node selector containing -MIG-, e.g. NVIDIA-H100-80GB-HBM3-MIG-1g.10gb), the platform automatically rewrites your resource request to the correct MIG resource name and normalizes your node selector to the base GPU type — you don't need to do this yourself.

  • The correct NVIDIA container runtime class is injected automatically for GPU Pods.

  • A GPU model you have no quota entry for, or a GPU type the platform can't identify from your selector, is rejected.

Quota/balance check

Every Pod create is checked against your quota and/or balance per the billing type × charge type matrix. kubectl apply on a Pod that would exceed your remaining quota or 48-hour balance runway is rejected — nothing is created.

What you can't change after creation

Pod updates and deletes are not quota-gated — only creation is checked. Once a Pod is running, its CloudekaResource mirror (kubectl get container) tracks its live cost and phase automatically; deleting the Pod stops the charge.

PersistentVolumeClaims (PVCs)

Required fields

  • spec.storageClassName must be set, and must be a class you have quota for (check kubectl get rquota -o yaml under spec.storage).

  • spec.resources.requests.storage must be set.

Quota/balance check

Same billing-type/charge-type matrix as Pods, applied to the requested storage size and its per-class price.

Resizing

  • Growing a PVC (increasing resources.requests.storage) is allowed, and — note — is not re-checked against your remaining quota/balance at resize time. Keep an eye on your rquota usage yourself after a large resize.

  • Shrinking a PVC is always rejected (VOL3006). If you need less storage, delete and recreate the PVC instead (this does release/re-consume quota).

Services (LoadBalancer / Floating IP)

Only type: LoadBalancer Services are checked and billed; ClusterIP and NodePort are free and unrestricted.

Check Floating IP quota and balance

On create, the platform checks your Floating IP quota/balance (floatingIP field in rquota) before allowing the Service.

Wait for the external IP assignment

The external IP is assigned asynchronously by the platform's load-balancer IP pool — it won't appear instantly. Poll with:

View the matching CloudekaFloatingIP object

Once an IP is assigned, a matching CloudekaFloatingIP object (cfip) appears with the same name, showing the external IP, internal ClusterIP, ports, and hourly charge:

Release the IP

Deleting the Service (or changing it away from LoadBalancer) releases the IP and stops the charge; the CloudekaFloatingIP object is removed.

IP pools themselves (CloudekaIPPool) are platform-managed — you consume from them, you don't create or configure pools.

Summary — what gets rejected outright

For the exact error text and how to fix each one, see Troubleshooting.

Action
Rejected when

Create Pod

Missing cpu or memory limit (partial); insufficient quota/balance; unidentifiable GPU request

Create PVC

Missing storage class; storage class not in your quota; missing storage size request; insufficient quota/balance

Update PVC

Requested size is smaller than current (shrink)

Create Service (LoadBalancer)

Insufficient Floating-IP quota/balance

Last updated