List or watch poolactions in every project
const url = 'https://example.com/apis/nodus.dev/v1/poolactions';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/apis/nodus.dev/v1/poolactionsParameters
Section titled “ Parameters ”Query Parameters
Section titled “ Query Parameters ”Responses
Section titled “ Responses ”OK
object
PoolAction is one Act decision: an action on a Pool’s hosts or routing that a member approves or rejects, or that runs by policy. Only the Act controller creates PoolActions; members change only spec.decision.
object
object
object
object
object
object
object
PoolActionSpec is the proposed action.
object
Action is the policy action that selected it.
PoolRoutingChange is a bounded patch of Pool.spec.routing.
object
BurstMaxGPUs is the new burst GPU bound.
BurstToMarket is the new burst policy.
WaitTimeout is the new wait timeout.
Decision is Pending, Approved or Rejected; the only field a member writes, once.
EstimatedSavingsUSD is the estimated saving over 30 days, as a decimal string.
ExpirationTime is when an undecided Propose action is canceled (24 h after creation).
Mode is the Pool’s act.mode when the action was created.
OpportunityCostUSD is the estimated cost of taking the action, as a decimal string.
Pool is the Pool the action applies to.
Reason explains, in words, why the action was selected.
Recommendation is the id of the recommendation the action came from, when there is one.
PoolActionTargets names what an action touches.
object
Nodes are the Nodes the action touches.
Objects are the objects the action touches, as kind/name.
PoolActionStatus is the action’s progress.
object
CompletionTime is when the action finished.
Conditions carries the action’s conditions.
object
Executed is true only when the action changed something; Shadow records stay false.
HandledRequests records the nodus.dev/revert-requested-at value last acted on.
object
Phase is the action’s phase.
PoolRoutingChange is a bounded patch of Pool.spec.routing.
object
BurstMaxGPUs is the new burst GPU bound.
BurstToMarket is the new burst policy.
WaitTimeout is the new wait timeout.
Reason is the terminal phase’s reason (Expired, Rejected, KillSwitch, …).
Results are the outcomes per target.
PoolActionResult is the outcome on one target.
object
Message explains the outcome.
Applied, Skipped, Failed, Reverted
Target is the Node or object the result is for.
Revertible is true when the executed change can be undone with nodus pool revert.
StartTime is when the action started.
object
object
Example generated
{ "apiVersion": "example", "items": [ { "apiVersion": "example", "kind": "example", "metadata": { "annotations": { "additionalProperty": "example" }, "creationTimestamp": "example", "deletionGracePeriodSeconds": 1, "deletionTimestamp": "example", "finalizers": [ "example" ], "generateName": "example", "generation": 1, "labels": { "additionalProperty": "example" }, "managedFields": [ { "apiVersion": "example", "fieldsType": "example", "fieldsV1": { "additionalProperty": "example" }, "manager": "example", "operation": "example", "subresource": "example", "time": "example" } ], "name": "example", "namespace": "example", "ownerReferences": [ { "apiVersion": "example", "blockOwnerDeletion": true, "controller": true, "kind": "example", "name": "example", "uid": "example" } ], "resourceVersion": "example", "selfLink": "example", "uid": "example" }, "spec": { "action": "example", "change": { "burstMaxGPUs": 1, "burstToMarket": "example", "waitTimeout": "example" }, "decision": "example", "estimatedSavingsUSD": "example", "expirationTime": "example", "mode": "example", "opportunityCostUSD": "example", "pool": "example", "reason": "example", "recommendation": "example", "targets": { "nodes": [ "example" ], "objects": [ "example" ] } }, "status": { "completionTime": "example", "conditions": [ { "lastTransitionTime": "example", "message": "example", "observedGeneration": 1, "reason": "example", "status": "example", "type": "example" } ], "executed": true, "handledRequests": { "additionalProperty": "example" }, "phase": "example", "previous": { "burstMaxGPUs": 1, "burstToMarket": "example", "waitTimeout": "example" }, "reason": "example", "results": [ { "message": "example", "outcome": "example", "target": "example" } ], "revertible": true, "startTime": "example" } } ], "kind": "example", "metadata": { "continue": "example", "remainingItemCount": 1, "resourceVersion": "example", "selfLink": "example", "shardInfo": { "selector": "example" } }}default
Section titled “ default ”An error: a metav1.Status whose reason is a registered code.
Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).
object
object
object
Docs is the URL of the code’s docs page.
Fix says what to do next, for example a CLI command or the field to change.
object
object
RequestID identifies the request in logs and support tickets.
Example generated
{ "apiVersion": "example", "code": 1, "details": { "causes": [ { "field": "example", "message": "example", "reason": "example" } ], "group": "example", "kind": "example", "name": "example", "retryAfterSeconds": 1, "uid": "example" }, "docs": "example", "fix": "example", "kind": "example", "message": "example", "metadata": { "continue": "example", "remainingItemCount": 1, "resourceVersion": "example", "selfLink": "example", "shardInfo": { "selector": "example" } }, "reason": "example", "requestId": "example", "status": "example"}