List, inspect, and delete the scaling groups in your environment from the CLI or the SDK.


​
Listing

$ chalk scaling-group list

Displays a table of all scaling groups in your environment with their ID, name, selected revision, image, status, replica counts, URL, and creation time.

from chalk.client import ChalkClient

client = ChalkClient()
response = client.list_scaling_groups()

for scaling_group in response.scalingGroups:
    print(f"Scaling group: {scaling_group.name}")
    print(f"  Status: {scaling_group.status}")

​
Inspecting

$ chalk scaling-group get --name=inference

Shows the group’s ID, name, selected revision, status, image, port, minimum and maximum replicas, web URL, and creation time.

import chalkcompute

sg = chalkcompute.ScalingGroup.from_name("inference")
# or
sg = chalkcompute.ScalingGroup.from_id("scaling-group-id")

info = sg.refresh()
print(info.status)             # 'Available', 'Pending', 'ScaledToZero', ...
print(info.ready_replicas)
print(info.available_replicas)
print(sg.web_url)

A scaling group reports one of these statuses:

StatusMeaning
PendingNo replica is ready.
AvailableAll desired replicas are ready.
DegradedSome replicas are ready, but not all desired replicas are, or a rollout has stalled.
ScaledToZeromin_replicas is 0 and the autoscaler has scaled the group to zero replicas.
UnhealthyNo replica is ready and a replica is failing, or a startup probe failed.
ErrorChalk could not apply the group’s spec.
UnknownChalk has not reported a status for the group.
DeletedThe group was deleted.

​
Deleting

$ chalk scaling-group delete --name=inference
sg.delete()

Both surfaces remove the Kubernetes Deployment, Service, and HTTPRoute associated with the scaling group. The SDK additionally cleans up any temporary volumes created from add_local_file uploads. The database record is soft-deleted so the group still appears in history.