Link
Link custom resource schema.
The Link CRD represents a single point-to-point wire between two containerlab nodes. Each device
Pod's connectivity helper selects the links terminating on its own Nodes with field selectors on
endpoint node names (Kubernetes 1.31+).
Link
SPEC
LinkSpec is the spec for a Link resource -- the wire as the user drew it, nothing else. Anything operational (the allocated wire ID and resolved identities) lives in status, and current peer transport identity is derived by direct connectivity reconcilers.
-
MTU is the MTU for both direct endpoint interfaces; zero means unset.
STATUS
LinkStatus is the status for a Link resource.
-
Conditions contains bounded controller observations for this Link. It does not claim dataplane readiness, which remains observable through endpoint Node connectivity status.
-
Condition contains details for one aspect of the current state of this API Resource.
-
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 is a human readable message indicating details about the transition. This may be an empty string.
-
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: int64range: >= 0 -
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.
-
status of the condition, one of True, False, Unknown.
enum: "True", "False", "Unknown" -
type of condition in CamelCase or in foo.example.com/CamelCase.
-
-
-
ResolvedEndpoints identifies the exact Nodes to which this Link is bound. The controller sets both endpoints atomically after every non-host endpoint resolves. A host endpoint is recorded by name with an empty UID because it does not refer to a Node object.
-
WireID is the identity this link carries on the fabric wire between its two endpoint sidecars -- both sides of the link use the same id, and it is unique among the Links of this namespace (wire datagrams dispatch inside one receiving sidecar from a validated source, so cross-namespace uniqueness is meaningless). This is an allocation rather than user intent, hence it living in the status; zero means "not allocated (yet)" (direct connectivity reconcilers wait until the controller has filled the ID in).
range: 0 to 16000000