Skip to content

App Deployments (4c-i): per-service resources + footprint + namespace quota#221

Merged
v0l merged 1 commit into
masterfrom
feat/app-deployments-resources
Jul 24, 2026
Merged

App Deployments (4c-i): per-service resources + footprint + namespace quota#221
v0l merged 1 commit into
masterfrom
feat/app-deployments-resources

Conversation

@v0l

@v0l v0l commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

First half of capacity management. Makes each deployment carry real resource requests and caps its namespace at what was provisioned.

lnvps_compose

  • Service gains resources: { cpu, memory } (Kubernetes quantities; defaults 250m / 256Mi).
  • Compose::footprint()Footprint { cpu_milli, memory_bytes, storage_bytes } = Σ service cpu/memory + Σ volume size.
  • parse_cpu_milli (500m/2/1.5) and parse_bytes (512Mi/2Gi/1G/bytes) quantity parsers. 15 unit tests.

lnvps_operator

  • Containers now set requests == limits from resources (Guaranteed QoS, 1:1 / no overcommit as decided).
  • The per-namespace ResourceQuota is now applied, sized from compose.footprint(), so a misbehaving app can't exceed what it was provisioned (and billed) for.

Next (4c-ii)

Order-time admission: app footprint columns + static app_cluster.capacity_* columns + an AppClusterCapacityService (available = capacity − Σ active footprints) for the customer ordering flow (3b) to accept/reject and pick a cluster in the chosen region.

… quota

Capacity increment (part 1): make each deployment carry real resource
requests and cap its namespace.

lnvps_compose:
- Service gains resources: { cpu, memory } (k8s quantities; defaults
  250m / 256Mi).
- Compose::footprint() sums service cpu/memory + volume sizes into
  Footprint { cpu_milli, memory_bytes, storage_bytes }; parse_cpu_milli /
  parse_bytes parse k8s quantity strings. 15 unit tests.

lnvps_operator:
- Containers now set requests == limits from resources (Guaranteed QoS,
  1:1 / no overcommit).
- The per-namespace ResourceQuota is now applied, sized from
  compose.footprint(), so a deployment can't exceed what was provisioned.

Order-time capacity admission (cluster capacity columns + capacity service)
is the next increment. Part of work/app-deployments.md.
@v0l
v0l merged commit 75cb730 into master Jul 24, 2026
8 checks passed
@v0l
v0l deleted the feat/app-deployments-resources branch July 24, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant