Compute Reference
This page provides technical reference information for the Compute resource: the discovery tags PaletteAI reads from Palette Edge hosts, the spec fields you can set, and the status fields the controller reports. For concepts, refer to Compute. For the raw resource spec, refer to the Compute CRD documentation.
Discovery Tags
PaletteAI discovers Edge hosts that carry the palette.ai: true tag in Palette. Palette's Edge agent (Stylus) automatically detects and reports the GPU metadata that PaletteAI needs. If the agent cannot detect a value, you can supply it with the tags below. Labels for gpu-model and cpus take precedence over agent-reported values when present. Labels for gpus and gpu-memory are used only when the agent does not report them.
| Tag | Description | Example |
|---|---|---|
gpus: <count> | Number of GPUs | gpus: 8 |
cpus: <count> | Number of CPUs | cpus: 6 |
gpu-memory: <size> | Per-GPU memory (M, MB, MiB, G, GB, GiB) | gpu-memory: 80G |
gpu-model: <model> | GPU model. Takes precedence over the value reported by Stylus. | gpu-model: NVIDIA A100-SXM4-80GB |
The deprecated gpu-family tag is still accepted as a fallback for gpu-model and will be removed in a future release.
Refer to Edge Host Attributes for a full list of Edge host data automatically returned by Palette.
Role Eligibility Tags
By default, machines with GPUs are worker candidates only, and machines without GPUs are control plane candidates only. Override these defaults with the following tags.
| Tag | Effect |
|---|---|
palette.ai/control-plane: true | Allows a GPU machine to serve as a control plane node |
palette.ai/worker: true | Allows a non-GPU machine to serve as a worker node |
Do not apply both tags to the same machine. If you do, PaletteAI treats it as a worker only.
Resource Group Tags
Tags that begin with palette.ai.rg/ assign a machine to resource groups, which Compute Pools use to restrict host selection. Refer to Resource Groups in the ComputePool Configuration reference.
Network Isolation Tags
PaletteAI automatically writes network isolation tags to Palette Edge hosts when:
- The host is tagged with
net-iso-provider=aviz - The host belongs to a project with an AvizTenant resource
- The AvizTenant status contains VLAN or tenant IP pool data
The following tags are system-managed and reconciled automatically by the compute controller.
| Tag | Description |
|---|---|
net-iso-provider | Identifies the network isolation provider for a host. Value aviz indicates Aviz-governed hosts. |
net-iso-interface | The server-facing NIC name for network isolation, sourced from the Aviz ONES topology. When multiple interfaces exist, the lexicographically smallest interface name is used. |
net-iso-vlan | The VLAN ID assigned to the Aviz tenant's north-south network, sourced from the ONES tenant configuration. |
net-iso-subnet-ipv4 | The network IPv4 address of the network isolation software (for example, 10.4.0.80), not the full CIDR. |
net-iso-subnet-prefix-length | The prefix length (for example, 28 for a /28 subnet) for the network isolation software's subnet. |
The net-iso-interface tag is resolved from the Aviz ONES fabric topology. The net-iso-vlan and subnet tags are sourced from the AvizTenant CRD status, which the Aviz tenant controller populates from ONES. These tags are idempotent and reconciled automatically; you do not configure them directly.
Spec Fields
The Compute inventory itself is maintained by the controller, but the Compute spec has fields you can set:
-
spec.settingsRef- The Settings resource that provides the Palette credentials used for discovery. It must exist in the same namespace as the Compute. If omitted, the Settings configured for that namespace's System, Tenant, or Project scope is used. -
spec.edgeHostNICSelections- Maps Edge host UIDs to the network interface (NIC) each host should use, when a host has more than one usable NIC. Multi-NIC hosts always require an explicit selection; PaletteAI does not infer one from the inventory'sisDefaultfield. -
spec.edgeHostStaticIPs- Maps Edge host UIDs to static network values (IP, subnet, gateway, DNS) for hosts that must not use DHCP. The cluster-level static IP mode is derived automatically from these entries during deployment.
Use the host UID from status.edgeHostDetails as the map key, and choose a NIC name reported in that host's nics list. The ip, subnet, and gateway fields are required together; dns is optional.
spec:
edgeHostNICSelections:
edge-e078384256765be6e92fc1118aa9f283: ens160
edgeHostStaticIPs:
edge-e078384256765be6e92fc1118aa9f283:
dns:
- 10.10.128.8
gateway: 10.10.128.1
ip: 10.10.138.209
subnet: 255.255.192.0
NIC selections and static IP values cannot be changed for hosts that are in-use. Update them while the host is available.
Status Reference
The controller reports discovered machines in the Compute status, grouped by hardware profile. Each machine reports its availability status (available, in-use, or unhealthy) and its tags, the Palette edge host labels for that host keyed by tag name (empty when the host has no labels).
View the status with the following command.
kubectl get compute <compute-name> --namespace <compute-namespace> --output yaml
The following example shows:
- 2 control plane candidates with 4 CPUs each (1 available, 1 in-use)
- 1 worker candidate with 8 NVIDIA H100 GPUs (available)
- 1 worker candidate with 8 NVIDIA A100 GPUs (unhealthy), assigned to specific resource groups
Per-host network details appear under edgeHostDetails.
Example Compute status
status:
inventory:
edge:
controlPlaneCompute:
- architecture: AMD64
cpuCount: 4
instances: 2
machines:
edge-5db0384219cfa0fa4ef97d53bf291b2e:
status: available
tags:
palette.ai: 'true'
palette.ai/control-plane: 'true'
edge-228638428bf0078309b65730b24101ee:
status: in-use
workerCompute:
- architecture: AMD64
gpuVariant:
gpuCount: 8
model: NVIDIA H100 PCIe
name: NVIDIA H100 PCIe | 80 GB
perGPUMemory: 80 GB
totalGPUMemory: 640 GB
instances: 1
machines:
edge-e078384256765be6e92fc1118aa9f283:
status: available
- architecture: AMD64
gpuVariant:
gpuCount: 8
model: NVIDIA A100-SXM4-80GB
name: NVIDIA A100-SXM4-80GB | 80 GB
perGPUMemory: 80 GB
totalGPUMemory: 640 GB
instances: 1
resourceGroups:
network-pool: '3'
storage-tier: 'high-performance'
machines:
edge-9baf38425dacad857c70ccdbabb48028:
status: unhealthy
edgeHostDetails:
edge-5db0384219cfa0fa4ef97d53bf291b2e:
nics:
- name: ens160
ip: 10.10.142.73
subnet: 255.255.192.0
gateway: 10.10.128.1
dns: [10.10.128.8]
macAddr: 00:50:56:b8:58:61
isDefault: true
resolvedNIC: ens160
hasUsableNetworkValues: true
edge-e078384256765be6e92fc1118aa9f283:
nics:
- name: ens160
ip: 10.10.138.209
subnet: 255.255.192.0
gateway: 10.10.128.1
dns: [10.10.128.8]
macAddr: 00:50:56:b8:71:93
isDefault: true
resolvedNIC: ens160
hasUsableNetworkValues: true
Key status fields:
status.ready- Whether the Palette API is reachable and authenticated.status.computeAvailable- Whether any unallocated machines exist.status.inventory.edge.controlPlaneCompute/status.inventory.edge.workerCompute- Machines grouped by hardware profile, with per-machine status and any resource groups.status.edgeHostDetails- Per-host network details, including detected NICs and whether the host has usable network values.status.conditionstypeAllEdgeHostNICsResolved- Whether every host inedgeHostDetailshas a resolved NIC. Informational only; aFalsestatus does not make the Compute resource unready, but hosts without a resolved NIC remain ineligible for Compute Pools.