Skip to search

MetalNode

inference.llmkube.dev / v1alpha1

apiVersion: inference.llmkube.dev/v1alpha1 kind: MetalNode metadata: name: example
View raw schema
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
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
metadata object
spec object required
MetalNodeSpec is written by the cluster admin (llmkube metal token create). The agent has no write access to it.
hostIP string
HostIP is an address the admin knows reaches this Mac. It is tried before the agent's own candidates and is still verified by the dial-back; it is never trusted on its own. The controller validates it (Reachable=False, reason InvalidSpec, when it is not an IP address) rather than a CEL rule, whose isIP() would need Kubernetes 1.31.
maxLength: 45
leaseName string required
LeaseName is the coordination.k8s.io Lease, in this namespace, that the agent renews as its heartbeat and annotates with its report.
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
minLength: 1
maxLength: 253
serviceAccountName string required
ServiceAccountName is the ServiceAccount the Mac's agent authenticates as. Deleting that ServiceAccount revokes every token the agent holds.
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
minLength: 1
maxLength: 253
verifier object
Verifier places the dial-back verifier pod. Point it at the nodes the relay pods for this Mac run on, so the check tests the network path the relay will use.
nodeSelector object
NodeSelector is copied to the verifier pod.
tolerations []object
Tolerations are copied to the verifier pod.
effect string
Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key string
Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator string
Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
tolerationSeconds integer
TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
format: int64
value string
Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
status object
MetalNodeStatus is written only by the controller.
agentVersion string
AgentVersion is the version the agent reports.
candidates []object
Candidates are the addresses tried, in preference order, with the last dial-back result for each.
maxItems: 17
address string required
Address is an IP address.
checkedAt string
CheckedAt is when the verifier finished the check that produced Result.
format: date-time
result string required
Result is the dial-back outcome.
enum: Pending, Reachable, Timeout, Refused, PinMismatch, CertificateMismatch, NotAllowed, Error
source string
Source says where the address came from: override (spec.hostIP or the agent's --host-ip), tailnet, lan or docker-host.
capacity object
Capacity is the hardware the agent reports.
chip string
Chip is the CPU brand string (for example "Apple M5 Max").
gpuCores integer
GPUCores is the GPU core count.
format: int32
memory string
Memory is MemoryBytes as a quantity (for example 128Gi), for display.
memoryBytes integer
MemoryBytes is the Mac's unified memory in bytes.
format: int64
metalVersion string
MetalVersion is the Metal family the GPU supports (for example "Metal 4").
conditions []object
Conditions: AgentConnected and Reachable.
lastTransitionTime string required
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
message string required
message is a human readable message indicating details about the transition. This may be an empty string.
maxLength: 32768
observedGeneration integer
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format: int64
minimum: 0
reason string required
reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
minLength: 1
maxLength: 1024
status string required
status of the condition, one of True, False, Unknown.
enum: True, False, Unknown
type string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
maxLength: 316
hostIP string
HostIP is the first candidate the dial-back verified. It is set only while Reachable is True.
ingressPort integer
IngressPort is the agent's TLS ingress port.
format: int32
ingressSPKI string
IngressSPKI is the base64 SHA-256 digest of the agent ingress certificate's public key, as the agent reports it. The dial-back and the relay complete TLS only against this key; the dial-back also requires the certificate the agent reports, which must name this MetalNode's UID.
lastHeartbeatTime string
LastHeartbeatTime is the Lease's renewTime, accurate to about a minute: it advances when AgentConnected changes or when it is more than 60 seconds behind. The Lease holds the exact time.
format: date-time
observedGeneration integer
ObservedGeneration is the spec generation this status reflects.
format: int64
verification object
Verification is the dial-back bookkeeping.
consecutiveFailures integer
ConsecutiveFailures counts checks in a row that verified no address; it sets the retry backoff.
format: int32
inputHash string
InputHash identifies the pin, ingress certificate, port, candidate list and verifier placement the last completed check ran against. A change starts a new check.
lastCheckTime string
LastCheckTime is when the last completed check finished.
format: date-time
lastStartTime string
LastStartTime is when the controller last started a verifier pod. Starts are at least 30 seconds apart, whatever the Mac reports.
format: date-time
podUID string
PodUID is the UID of the verifier pod the controller last created. Only that pod's results are read.

No matches. Try .spec.hostIP for an exact path