10 Metal3 #
Metal3 is a CNCF project which provides bare-metal infrastructure management capabilities for Kubernetes.
Metal3 provides Kubernetes-native resources to manage the lifecycle of bare-metal servers which support management via out-of-band protocols such as Redfish.
It also has mature support for Cluster API (CAPI) which enables management of infrastructure resources across multiple infrastructure providers via broadly adopted vendor-neutral APIs.
10.1 How does SUSE Edge use Metal3? #
This method is useful for scenarios where the target hardware supports out-of-band management, and a fully automated infrastructure management flow is desired.
This method provides declarative APIs that enable inventory and state management of bare-metal servers, including automated inspection, cleaning and provisioning/deprovisioning.
10.2 Known issues #
The upstream IP Address Management controller is currently not supported, because it is not yet compatible with our choice of network configuration tooling.
Relatedly, the IPAM resources and Metal3DataTemplate networkData fields are not supported.
Only deployment via redfish-virtualmedia is currently supported.
It is possible to observe a network device name misalignment between the ironic python agent (IPA) and the target operating system (SL Micro 6.0/6.1), especially when trying to configure predictable names for the devices.
This happens because the kernel of the ironic python agent (IPA) is not currently aligned with the kernel of the target operating system (SL Micro 6.0/6.1), therefore there’s a misalignment in the network drivers that allows the IPA to discover network devices in a different naming pattern than SL Micro expects.
There are two different approaches to be used as a workaround in the meantime:
* Create two different secrets with the network configuration, one to be used with the IPA using the device names as IPA will discover and use it as preprovisioningNetworkDataName
on the BareMetalHost
definition and another secret with the device names as SL Micro will discover and use it as networkData.name
on the BareMetalHost
definition.
* Use the UUIDs to reference other interfaces on the generated nmconnection files instead.
More details in the tips and tricks section.