Package v1beta1 contains the API Schema definitions this operator owns on top of upstream agent-sandbox: the NodeInventory CRD and the sandboxes action subresource payloads.
InventoryEntry is one live sandbox as summarized by its owning node.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
name is the sandbox “ default namespace. |
||
id string |
id is the owning node’s sandboxd claim id (“sb_…”), the handle its sandbox-release verb needs. The aggregated apiserver surfaces it on the synthesized Sandbox so Delete can release exactly this node-local microVM (releasing by k8s name would target the wrong claim). Empty until the node publishes it. |
Optional: {} |
|
phase string |
phase is the node-reported sandbox phase (e.g. Running). | ||
template string |
template is the pool template (base image) the sandbox was claimed from. It is the only place the aggregated read path can recover it: no per-sandbox object holds the pod spec. |
Optional: {} |
|
claimRef string |
claimRef is the “ bound to, if any. |
Optional: {} |
|
addr string |
addr is the sandbox “host:port” address, if published. | Optional: {} |
|
deadline Time |
deadline is the node-granted lease expiry, if published. | Optional: {} |
|
claimedAt Time |
claimedAt is when the node first granted the claim, if published; a renew or a wake moves deadline, never this. |
Optional: {} |
|
claimMetadata string |
claimMetadata is the claim’s caller metadata as one JSON object, at most 4 KiB. | Optional: {} |
|
cpuCount integer |
cpuCount is the vCPU count of the size tier the VM was booted with. | Optional: {} |
|
memoryBytes integer |
memoryBytes is the memory of the size tier the VM was booted with. | Optional: {} |
NodeInventory is the single O(nodes) etcd object per node: the durable summary
of that node’s live sandboxes, server-side-applied on a slow cadence and
scatter-gathered by the aggregated sandbox-apiserver. It is deliberately
spec-less (pure reported summary, no desired state) and cluster-scoped with
metadata.name equal to the node name. It lives in this repository’s own
group, not in agents.x-k8s.io, whose entire v1beta1 the APIService hands to
the aggregated server (which serves only sandboxes).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
sandbox.cocoonstack.io/v1beta1 |
||
kind string |
NodeInventory |
||
kind string |
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
Optional: {} |
|
apiVersion string |
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
Optional: {} |
|
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
node string |
node is the owning node name; it matches metadata.name. | ||
entries InventoryEntry array |
entries summarizes the node’s live sandboxes. | Optional: {} |
|
address string |
address is the node’s sandboxd advertise address (“host:port”); the aggregated apiserver routes a claim to this node’s sandboxd through it. |
Optional: {} |
|
pools PoolCapacity array |
pools is the node’s per-pool warm capacity, used to pick a node that already holds a warm microVM for a requested (template, net, size). |
Optional: {} |
|
templates PromotedTemplate array |
templates is the node’s promoted templates, which later claims of their key clone from. | Optional: {} |
|
publishedAt Time |
publishedAt is the publisher’s last apply; the aggregated apiserver skips an inventory older than its staleness window. | Optional: {} |
NodeInventoryList contains a list of NodeInventory.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
sandbox.cocoonstack.io/v1beta1 |
||
kind string |
NodeInventoryList |
||
kind string |
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
Optional: {} |
|
apiVersion string |
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
Optional: {} |
|
metadata ListMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
items NodeInventory array |
PoolCapacity is one sandboxd warm pool’s capacity as reported by its owning node’s GET /v1/info: the pool key plus its warm/target counts. The aggregated apiserver reads it to pick a node that already holds a warm microVM for a requested (template, net, size).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string |
template is the pool’s base image (the sandbox template). | ||
net string |
net is the pool’s network shape (e.g. “none”, “egress”). | Optional: {} |
|
size string |
size is the pool’s VM size class (e.g. “small”). | Optional: {} |
|
warm integer |
warm is the number of ready-to-claim warm microVMs currently in the pool. | ||
target integer |
target is the pool’s desired warm depth. |
PromotedTemplate is one promoted sandboxd template a node holds, as its GET /v1/info reports it: the template key, the content identity of its export, and the size tier later claims of it boot with.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string |
template is the promoted template’s name. | ||
net string |
net is the template’s network shape. | Optional: {} |
|
size string |
size is the template’s VM size class. | Optional: {} |
|
contentDigest string |
contentDigest is the digest of the template’s published export bytes. | ||
tenant string |
tenant is the sandboxd tenant that promoted the template; empty for the operator. | Optional: {} |
|
createdAt Time |
createdAt is the template’s last promote. | Optional: {} |
|
cpuCount integer |
cpuCount is the vCPU count of the template’s size tier. | Optional: {} |
|
memoryBytes integer |
memoryBytes is the memory of the template’s size tier. | Optional: {} |
|
labels object (keys:string, values:string) |
labels is the template’s label map, set through the node’s PUT /v1/templates/labels. | Optional: {} |