Skip to main content
The examples on this page show common ways to use the APC API. They’re not a complete API reference. For the full, interactive API documentation, including every query, mutation, and type, go to https://houston.<your-base-domain>/v1, and click the Docs tab. See Develop and test APC API queries for more on using the built-in GraphQL explorer.
A node pool describes a node group that already exists in a data plane cluster, so you can place worker queues on it. For what node pools do and how to manage them from the UI, see Configure node pools.
Astro Private Cloud 2.2This feature was introduced in Astro Private Cloud 2.2. To access this feature, upgrade your Astro Private Cloud installation to 2.2 or later.
These operations need the system.nodePools.* or cluster.nodePools.* permissions. See Permissions.

List node pools on a cluster

workerQueueCount is how many worker queues reference the pool. capacity.overCommitted is true when those queues, counted at their maximum worker counts, request more than the pool’s total. Over-commitment is a warning, not a block. capacity accepts an excludeDeploymentId argument, so a client editing one Deployment can show the pool’s committed total without double-counting that Deployment’s queues. To see which queues are on a pool, request workerQueueClaims. The field returns null for a caller without node pool read permission:

Create a node pool

With these variables:

InputNodePool fields

Each max* value must be a whole number greater than zero. Leaving one unset means the pool imposes no ceiling on that dimension, and only the platform resource limits apply.

InputToleration fields

Update a node pool

name and nodeSelector are non-null on InputNodePool, so every update must resend both. A call that sends only { "maxCpu": null } fails schema validation. The optional fields behave as a partial patch, unlike InputWorkerQueue on upsertDeployment:
  • An optional field you omit keeps its stored value.
  • An optional field you set to null is cleared.
Clear a ceiling with an explicit null. This is the only way to fix a mis-set ceiling, because a pool that’s in use can’t be deleted and recreated. Renaming a pool is safe. Worker queues reference a pool by its identifier, so a rename can’t orphan them. A name that collides with another pool on the same cluster is refused.

Converge Deployments after a placement change

Changing nodeSelector or tolerations doesn’t reach Deployments that already use the pool until you rebuild each one. pendingConvergenceDeploymentIds reports which Deployments aren’t running the pool’s current placement, without reading resources back from the cluster. Rebuild exactly those Deployments:
This mutation never touches the rest of the cluster.

Delete a node pool

A pool that any worker queue references can’t be deleted. The error names the Deployments and queues that still use it. Move or remove those queues first. Node pools are hard-deleted, with no soft delete and no recovery.

Errors

Exceeding a pool’s total budget doesn’t produce an error. It sets capacity.overCommitted to true.

See also