Link
Link custom resource schema.
The Link CRD represents a single point-to-point wire between two containerlab nodes. Launchers
select links 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 tunnel id) lives in the status, and anything derivable (i.e. the remote launcher's fabric service) is derived by the launchers.
-
Connectivity is the flavor used to realize this Link across launcher Pods. Empty values on objects stored before API defaulting was introduced are normalized to VXLAN by consumers.
default: "vxlan"enum: "vxlan", "slurpeeth" -
MTU is the mtu for the link -- launchers apply this to the (node side of the) link termination they create; zero means "unset" (use the containerlab default).
STATUS
LinkStatus is the status for a Link resource.
-
Error holds the reason this link cannot currently be realized. An empty value means the link is eligible for materialization (a cross-launcher link can still be waiting for its tunnel id); invalid links and deterministic endpoint-conflict losers carry an error and are ignored by node controllers and launchers until their spec or conflicting links change.
-
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.
-
TunnelID is the id number of the tunnel (vxlan vnid or slurpeeth segment id) the controller allocated for this link -- both sides of the link use the same id. This is an allocation rather than user intent, hence it living in the status; zero means "not allocated (yet)" (launchers skip such links until the controller has filled the id in).
range: 0 to 16000000