Skip to content

feat: add GlobalResourceQuota CR - #120

Open
oliverbaehler wants to merge 5 commits into
projectcapsule:mainfrom
oliverbaehler:feat/grq
Open

feat: add GlobalResourceQuota CR#120
oliverbaehler wants to merge 5 commits into
projectcapsule:mainfrom
oliverbaehler:feat/grq

Conversation

@oliverbaehler

Copy link
Copy Markdown
Contributor

No description provided.

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
Copilot AI review requested due to automatic review settings July 31, 2026 08:36
@netlify

netlify Bot commented Jul 31, 2026

Copy link
Copy Markdown

Deploy Preview for docs-projectcapsule ready!

Name Link
🔨 Latest commit 2863ae7
🔍 Latest deploy log https://app.netlify.com/projects/docs-projectcapsule/deploys/6a6c5ea7eebf690008523ee5
😎 Deploy Preview https://deploy-preview-120--docs-projectcapsule.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation for the new cluster-scoped GlobalResourceQuota concept and adjusts related docs/navigation to surface it alongside other resource-management features.

Changes:

  • Adds a new docs page describing GlobalResourceQuota, including selection, atomic admission behavior, status, monitoring, and troubleshooting.
  • Expands metadata enforcement docs with default and managed semantics and updates examples accordingly.
  • Reorders resource-management docs (weights) and refactors parts of the quickstart section structure, including adding a “Tenant Scope” replication showcase.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
content/en/docs/rules/enforcement/metadata.md Adds/clarifies default and managed metadata behavior and updates headings/examples.
content/en/docs/resource-management/resourcepools/_index.md Adjusts nav weight to accommodate new resource-management ordering.
content/en/docs/resource-management/globalresourcequota/_index.md New documentation page for GlobalResourceQuota.
content/en/docs/resource-management/customquotas/_index.md Adjusts nav weight to accommodate new resource-management ordering.
content/en/docs/quickstart/_index.md Refactors quickstart section headings/links and adds a tenant-scope replication showcase snippet.
Suppressed comments (1)

content/en/docs/rules/enforcement/metadata.md:400

  • In this Managed example, managed: "INV-10" does not match the regexp ^INV-[0-9]{4}$ shown above in the same snippet.
              values:
                - exp: "^INV-[0-9]{4}$"
              # Overwrites anything, even if the user has set a value, Should be applied using SSA by the rulestatus controller, if removed also removes (one fieldmanager per rulestatus which controlles all managed metadata). Also enforce at admission
              managed: "INV-10"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

### Required metadata
## Default

The `default` field provides a value for coressponding field should no value be provided by the user. This is only applied at admission time and does not enforce the value to be present in the object.
- exp: "^INV-[0-9]{4}$"
# If user / annotation is missing, use this as default value, only at admission mutation
default: "II-1"
# Overwrites anything, even if the user has set a value, Should be applied using SSA by the rulestatus controller, if removed also removes (one fieldmanager per rulestatus which controlles all managed metadata). Also enforce at admission
Comment on lines +374 to +376
labels:
cost-center:
default: "internal"
default: "II-1"
# Overwrites anything, even if the user has set a value, Should be applied using SSA by the rulestatus controller, if removed also removes (one fieldmanager per rulestatus which controlles all managed metadata). Also enforce at admission
managed: "II-10"
managed: "INV-10"

[Read More](/docs/tenants/quotas/)

Another improtant aspect of the `Tenant` is the ability to define a set of [`ResourceQuotas`](https://kubernetes.io/docs/concepts/policy/resource-quotas/) for the entire `Tenant`. This allows the Cluster Administrator to control the amount of resources that can be used by the `Tenant` and its namespaces. For example, we can define a resource quota for the entire `Tenant`:

[Explore](/docs/replications/global/#examples)

They key difference in the example is, that we use `scope: Tenant` instead of `scope: Namespace`. This creates Items for each `Tenant`, not for each `Namespace` of a `Tenant`. This allows us to create a single SopsProvider for the entire Tenant and distribute secrets across all namespaces of the Tenant. In this example we will showcase how to use the [Sops Operator](https://github.com/peak-scale/sops-operator) to distribute secrets across all namespaces of a tenant and for each `Tenant` we provide [`GlobalProxySettings`](/docs/proxy/proxysettings/#globalproxysettings). It also showcases more advanced templating machinsms to generate resources based on the `Tenant` metadata and status. The `GlobalTenantResource` is a powerful tool to manage resources across all namespaces of a tenant.
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.

2 participants