Skip to content

docs: propose quota display names and product grouping#619

Open
mattdjenkinson wants to merge 2 commits into
mainfrom
docs/quota-display-names-products
Open

docs: propose quota display names and product grouping#619
mattdjenkinson wants to merge 2 commits into
mainfrom
docs/quota-display-names-products

Conversation

@mattdjenkinson
Copy link
Copy Markdown
Contributor

Summary

Add a design doc proposing display-name and product-grouping support for the quota system, so the cloud-portal quota page can render HTTP Routes under an AI Edge group instead of raw API identifiers like gateway.networking.k8s.io/httproutes.

The doc proposes:

  • New cluster-scoped Product CRD under quota.miloapis.com/v1alpha1 carrying product display metadata.
  • New optional displayName and productRef fields on ResourceRegistrationSpec.
  • Propagation of display metadata into AllowanceBucket.status so the portal renders the page from a single list call. Dangling productRef is tolerated and surfaced via a status condition.
  • A staff-portal admin surface (Products CRUD + ResourceRegistration display-field editing) layered on the Kubernetes API — no new HTTP surface required.

Backward-compatible: empty displayName falls back to resourceType; missing productRef groups under "Other".

Tracking issue

datum-cloud/enhancements#735

File

docs/enhancements/quota/display-names-and-products.md

Add an enhancement proposal for surfacing human-readable resource
labels and product-level grouping on the quota system.

Key changes proposed:
- New cluster-scoped Product CRD under quota.miloapis.com/v1alpha1
  carrying display name and description for a product (e.g. AI Edge)
- New optional displayName and productRef fields on
  ResourceRegistrationSpec so each registered resource can advertise
  its friendly label and product membership
- Propagation of display metadata into AllowanceBucket.status so the
  cloud portal renders the quota page from a single list call
- Staff-portal admin surface for curating Product objects and editing
  the new display fields, layered on top of the Kubernetes API

Tracking issue: datum-cloud/enhancements#735
Two pieces of feedback on datum-cloud/enhancements#735:

1. Drop the separate Product CRD. Service-layer modelling belongs in
   the upcoming Milo service catalog, not in quota.miloapis.com. Add
   taxonomy fields (product, productDisplayName, category) directly to
   ResourceRegistrationSpec instead. The service catalog will populate
   spec.taxonomy once it lands; for now operators author it directly.
2. Drop controller-driven propagation into AllowanceBucket.status.
   Join registration metadata to buckets at the GraphQL layer via a
   field resolver with a per-request DataLoader and short TTL cache.
   No AllowanceBucket CRD changes; ResourceRegistration stays the
   single source of truth.

Cloud-portal switches the quota page to a GraphQL query (already the
pattern used for organizations/users). Staff-portal edit surface
narrows to ResourceRegistration display-field editing — no Products
admin since there is no Product resource.
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