Interface Status
Understanding Interface Status Output
When DraNet allocates a network interface to a Pod via a ResourceClaim
, it publishes the status of the allocated device within the ResourceClaim
’s status
field. This provides crucial insights into the readiness and configuration of the network interface from a Kubernetes perspective, adhering to the standardized device status defined in KEP-4817.
After a ResourceClaim
is processed and a network device is allocated, its status is reflected under ResourceClaim.status.devices
. This section contains conditions
and networkData
for each allocated device.
Conditions
The conditions
array provides a timeline of the device’s state and indicates whether specific aspects of its configuration and readiness have been met. DraNet reports the following conditions:
Ready
(typeNetworkDeviceReady
): Indicates that the network device has been successfully moved into the Pod’s network namespace and is configured.NetworkReady
: Signifies that the network interface within the Pod has been successfully configured with its IP addresses and routes.RDMALinkReady
: (Applies only when RDMA is used in exclusive mode) Indicates that the associated RDMA link device has been successfully moved into the Pod’s network namespace.
Each condition includes:
lastTransitionTime
: The timestamp when the condition last changed.message
: A human-readable message about the condition.reason
: A single-word identifier for the reason for the condition’s last transition.status
: “True”, “False”, or “Unknown” indicating the state of the condition.type
: The specific type of condition (e.g., “Ready”, “NetworkReady”).
Network Data (networkData
)
The networkData
field provides standardized output about the network interface as it appears inside the Pod. This data is crucial for applications that need to dynamically discover their assigned network interfaces.
interfaceName
: The actual name of the network interface inside the Pod (e.g., “eth0”, “eth99”).hardwareAddress
: The MAC address of the network interface.ips
: A list of IP addresses (in CIDR format) assigned to the interface.
Example Output
Here’s an example of the status
section from a ResourceClaim
named dummy-interface-static-ip-route
, showing the conditions and network data for an allocated network interface:
status:
allocation:
devices:
config:
- opaque:
driver: dra.net
parameters:
interface:
addresses:
- 169.254.169.13/32
name: eth99
routes:
- destination: 169.254.169.0/24
gateway: 169.254.169.1
- destination: 169.254.169.1/32
scope: 253
source: FromClaim
results:
- adminAccess: null
device: dummy2
driver: dra.net
pool: dra-worker
request: req-dummy
nodeSelector:
nodeSelectorTerms:
- matchFields:
- key: metadata.name
operator: In
values:
- dra-worker
devices:
- conditions:
- lastTransitionTime: "2025-05-24T10:25:51Z"
message: ""
reason: NetworkDeviceReady
status: "True"
type: Ready
- lastTransitionTime: "2025-05-24T10:25:51Z"
message: ""
reason: NetworkReady
status: "True"
type: NetworkReady
device: dummy2
driver: dra.net
networkData:
hardwareAddress: 86:d7:86:e6:f3:dd
interfaceName: eth99
ips:
- 169.254.169.13/32
pool: dra-worker
reservedFor:
- name: pod3
resource: pods