-
Notifications
You must be signed in to change notification settings - Fork 12
feat(operator,crdt,swim): tenant-budget plumbing via SWIM-gossiped GCounter (grid#40) #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
nerdalert
merged 7 commits into
praxis-proxy:main
from
jordigilh:feat/grid-40-tenant-budget-plumbing
Aug 13, 2026
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
2840a98
feat(operator,crdt,swim): tenant-budget plumbing via SWIM-gossiped GC…
jordigilh 7eb7e34
fix(swim,crdt): address review findings on tenant-spend gossip path
jordigilh a60dea7
fix(operator,docs): regenerate CRD schema and document tenant-budget …
jordigilh bba0434
feat(charts): wire budgetPolicy into grid-site chart, add helm-unittest
jordigilh d79c7d6
fix(charts): render non-null spec on minimal grid-site GridNetwork in…
jordigilh 062e071
fix(operator,swim,ci): address nerdalert's grid#47 review findings
jordigilh be2e805
Merge branch 'main' into feat/grid-40-tenant-budget-plumbing
nerdalert File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| suite: GridNetwork template | ||
| templates: | ||
| - templates/gridnetwork.yaml | ||
| tests: | ||
| - it: renders as a GridNetwork resource with no budgetPolicy by default | ||
| set: | ||
| gridNetwork.name: prod-grid | ||
| gridSite.name: prod-site | ||
| asserts: | ||
| - hasDocuments: | ||
| count: 1 | ||
| - isKind: | ||
| of: GridNetwork | ||
| - equal: | ||
| path: metadata.name | ||
| value: prod-grid | ||
| - notExists: | ||
| path: spec.budgetPolicy | ||
|
|
||
| - it: renders a non-null spec when only the required name fields are set | ||
| # Regression test: every optional field used to be gated behind `with`, | ||
| # so `spec:` rendered as YAML null when all of them were left at their | ||
| # falsy chart defaults. A real API server rejects that with | ||
| # "spec: Required value" on both create and update — helm-unittest | ||
| # can't reproduce server-side CRD validation, so this asserts the | ||
| # concrete symptom instead: gridId must always be present. | ||
| set: | ||
| gridNetwork.name: prod-grid | ||
| gridSite.name: prod-site | ||
| asserts: | ||
| - equal: | ||
| path: spec.gridId | ||
| value: "" | ||
|
|
||
| - it: renders budgetPolicy.tenants verbatim when set | ||
| set: | ||
| gridNetwork.name: prod-grid | ||
| gridSite.name: prod-site | ||
| gridNetwork.budgetPolicy: | ||
| tenants: | ||
| - tenantId: tenant-a | ||
| capUsd: 100 | ||
| - tenantId: tenant-b | ||
| capUsd: 250 | ||
| asserts: | ||
| - equal: | ||
| path: spec.budgetPolicy.tenants | ||
| value: | ||
| - tenantId: tenant-a | ||
| capUsd: 100 | ||
| - tenantId: tenant-b | ||
| capUsd: 250 | ||
|
|
||
| - it: renders budgetPolicy with an empty tenants list without erroring | ||
| set: | ||
| gridNetwork.name: prod-grid | ||
| gridSite.name: prod-site | ||
| gridNetwork.budgetPolicy: | ||
| tenants: [] | ||
| asserts: | ||
| - equal: | ||
| path: spec.budgetPolicy.tenants | ||
| value: [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The required Helm
validatecheck currently fails at this install step before any chart tests run. With the workflow-pinned Helm v3.17.3, helm-unittest v1.1.1 cannot load because its plugin manifest contains the unknownplatformHooksfield. Please pin a Helm/plugin combination that works in CI (and ideally checksum-pin the installed artifact), then confirm this required check is green.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A minimal candidate is to retain Helm 3 and pin the last pre-
platformHooksplugin manifest (then verify the required job):The v0.8.2 manifest uses the Helm 3-compatible
command/hooksfields; v1.1.1 usesplatformCommand/platformHooks. The green CI job should remain the deciding proof.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 4a1fb5f — pinned exactly as suggested:
HELM_UNITTEST_VERSION: v0.8.2, plus a comment explaining why (v1.x'splugin.yamlusesplatformCommand/platformHooks, which the pinned Helm v3.17.3 can't load; v0.8.2 is the last release on thecommand/hooksschema). Confirmed against both plugin manifests directly before pushing.Heads up: the
Helmworkflow run on this push is currently sitting ataction_required(the fork-PR approval gate), not failing — would appreciate an approve on the run so the green check shows up.