Placemat provides virtual BMC functionality. Users in a placemat node can control other nodes via BMCs. They can, for example, power-on/off nodes, reset nodes, and retrieve info of nodes by communicating with BMCs.
The address range of BMC network should be given in a resources YAML file.
kind: Network
name: bmc
spec:
type: bmc
use-nat: false
addresses:
- 10.0.0.1/24
In this example, 10.0.0.0/24
is the address range of BMC network.
-
Each node chooses an IP address of BMC from the range and notify of it to the Placemat process via a special character device
/dev/virtio-ports/placemat
. -
The Placemat process starts listening on the address.
-
An IPMI client on a placemat node sends commands to the BMC address.
-
The Placemat process interpret commands and controls the QEMU process of the node via its monitor socket.
Placemat supports IPMI v2.0, RMCP+ authentication.
- Chassis Power On
- Chassis Power Off
- Chassis Power Reset / Cycle
Placemat v2 returns the following fixed ComputerSystemCollection and ChassisCollection.
ComputerSystemCollection
{
"@odata.context": "/redfish/v1/$metadata#ComputerSystemCollection.ComputerSystemCollection",
"@odata.id": "/redfish/v1/Systems",
"@odata.type": "#ComputerSystemCollection.ComputerSystemCollection",
"Description": "Collection of Computer Systems",
"Members": [
{
"@odata.id": "/redfish/v1/Systems/System.Embedded.1"
}
],
"Members@odata.count": 1,
"Name": "Computer System Collection"
}
ChassisCollection
{
"@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
"@odata.id": "/redfish/v1/Chassis/",
"@odata.type": "#ChassisCollection.ChassisCollection",
"Description": "Collection of Chassis",
"Members": [
{
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
}
],
"Members@odata.count": 1,
"Name": "Chassis Collection"
}
Placemat V2 supports Reset Action for ComputerSystem and Chassis resource. You can confirm the supported actions in the Actions field of them.
ComputerSystem
{
"@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem",
"@odata.id": "/redfish/v1/Systems/System.Embedded.1",
"@odata.type": "#ComputerSystem.v1_5_0.ComputerSystem",
"Actions": {
"#ComputerSystem.Reset": {
"ResetType@Redfish.AllowableValues": [
"On",
"ForceOff",
"ForceRestart",
"GracefulShutdown",
"PushPowerButton",
"Nmi"
],
"target": "/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset"
}
},
Chassis
{
"@odata.context": "/redfish/v1/$metadata#Chassis.Chassis",
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1",
"@odata.type": "#Chassis.v1_6_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"ResetType@Redfish.AllowableValues": [
"On",
"ForceOff"
],
"target": "/redfish/v1/Chassis/System.Embedded.1/Actions/Chassis.Reset"
}
},
}