No description
  • Go 96.4%
  • Makefile 2.2%
  • Go Template 1.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Waldemar Kindler 1633c0461a
All checks were successful
ci-general / security (push) Successful in 10s
ci-general / charts (push) Successful in 50s
ci-general / code (push) Successful in 8m42s
chore: update Go to 1.26.6
2026-08-17 11:26:27 +02:00
.forgejo/workflows chore(deps): update actions/checkout action to v7 2026-08-03 07:30:33 +00:00
api/v1alpha1 refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
cmd refactor: rename module to edp.buildth.ing/DevFW-CICD/quota-controller 2026-08-06 17:52:48 +02:00
config refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
deploy/charts/quota-cm docs: document the ValidatingWebhookConfiguration contract in the chart 2026-07-30 13:28:49 +02:00
docs refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
internal refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
pkg refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
test refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
.gitignore ci: add goreleaser release pipeline 2026-07-28 18:40:52 +02:00
.golangci.yml feat: implement hierarchical quota delegation (ADR-0026) 2026-07-28 18:34:27 +02:00
.goreleaser.yaml ci: add goreleaser release pipeline 2026-07-28 18:40:52 +02:00
CLAUDE.md feat: implement hierarchical quota delegation (ADR-0026) 2026-07-28 18:34:27 +02:00
CONTRIBUTING.md docs: add license, contribution, governance and security policy 2026-07-30 14:57:40 +02:00
Dockerfile.goreleaser ci: add goreleaser release pipeline 2026-07-28 18:40:52 +02:00
go.mod chore: update Go to 1.26.6 2026-08-17 11:26:27 +02:00
go.sum fix(deps): update module edp.buildth.ing/devfw-cicd/controller-util to v0.0.3 2026-08-08 03:18:22 +00:00
GOVERNANCE.md docs: add license, contribution, governance and security policy 2026-07-30 14:57:40 +02:00
LICENSE docs: add license, contribution, governance and security policy 2026-07-30 14:57:40 +02:00
Makefile chore: commit generated APIResourceSchemas 2026-07-30 14:24:34 +02:00
quota-spec.md refactor(registry)!: drop the platform-controller enforcer and its kinds 2026-08-07 14:22:29 +02:00
README.md feat: embed kcp APIResourceSchemas for trueup host fixtures 2026-08-06 17:52:57 +02:00
renovate.json chore(deps): add renovate.json 2026-07-29 03:18:29 +00:00
SECURITY.md docs: add license, contribution, governance and security policy 2026-07-30 14:57:40 +02:00

quota-controller

CI Release Go License

IPCEI-CIS Badge

Hierarchical quota delegation for the edge-connect platform — the implementation of ADR-0026.

quota-controller is part of the IPCEI-CIS cloud infrastructure initiative. Within the IPCEI-CIS edge framework it provides the multi-tenant quota governance layer: workspace admins delegate resource budgets down the kcp workspace tree, and admission-time reservation enforces them exactly at every level.

Workspace admins divide their granted budget among sub-workspaces via a QuotaPolicy CR (one per workspace, named default). The system enforces:

  • Tightening invariant — a child's limits never exceed what its parent has left; checked at admission via CAS reservation against the parent's status.allocatedToChildren (§7).
  • Root ceiling — the org-root QuotaPolicy must fit inside TenantPolicy.spec.quotas (ADR-0018 commercial ceiling, §3.2).
  • Exact create gating — a thin admission webhook CAS-reserves against QuotaEnforcement.status.usage; trueup owners (the components that already watch each kind) converge the counter to ground truth (§4).

Components

Binary Role
cmd/quota-controller Owns QuotaPolicy: translates admitted limits into per-(workspace, enforcer) QuotaEnforcement directives, mirrors usage back onto QuotaPolicy.status.used, derives path/parentPath, trues up allocatedToChildren. Multicluster over the quotapolicies + quotaenforcements APIExports.
cmd/quota-admission-webhook Serves both admission paths: reservation on creates of quota-managed kinds (§4a) and QuotaPolicy validation (tightening + root ceiling + allocation reservation, §3/§7).

Trueup reconcilers for counted kinds live with their existing watchers (platform controller, workspace-controller — see ADR-0026 §4b). This module ships the shared QuotaEnforcement contract and its enforcer-side implementation: pkg/trueup owns the trueup protocol (identity filtering, usage overwrite, observedGeneration, the Accepted condition, no-op write suppression); a host controller implements only the trueup.Counter hook over its existing informer cache and wires SetupWithManager with its counted kinds.

config/kcp embeds the generated APIResourceSchema manifests, so a host's integration suite can publish the quota APIs against a real kcp from the same bytes the Helm chart installs:

schema, err := kcpconfig.APIResourceSchemaYAML("quotaenforcements")

Development

make help          # all targets
make test          # unit tests
make test-e2e      # envtest integration suite
make test-kcp      # e2e against kcp (downloads and starts a throwaway kcp; set KCP_KUBECONFIG to reuse a running one)
make manifests     # regenerate CRDs + kcp APIResourceSchemas

Conventions mirror ../tenant-controller.

Architecture, decision flows and operating notes: docs/quota-controller.md.

License

Apache-2.0 — see LICENSE.

Funding and Support

This open source project is part of activities carried out within the Important Project of Common European Interest on Next Generation Cloud Infrastructure and Services (IPCEI-CIS) — FKZ 13IPC005, an EU initiative to build a sovereign, interoperable and energy-efficient cloud-to-edge infrastructure in Europe.

The work in this repository has been supported and co-funded by Deutsche Telekom in the context of IPCEI-CIS, where Deutsche Telekom contributes its expertise in secure, sustainable connectivity and cloud-edge platform orchestration for a European cloud-edge continuum.

Where applicable, further national or European public funding instruments associated with IPCEI-CIS may also have contributed to the development of this software.

IPCEI-CIS