Entities
Entities
Overview
Entities represent actual physical equipment instances in your datacenter - specific servers, power distribution units, GPUs, switches, and other hardware components. Each entity is a concrete instantiation of a device specification, configured with real-world details like BMC endpoints and site-specific constraints.
Entity Structure
Each entity defines:
- Name - Unique identifier (e.g., “node001”, “rack-pdu-a1”)
- Type - Device category from device specification
- Model - Specific device model from device specification
- Redfish - BMC endpoint configuration for management
- Policy - Default power policy (optional)
- Constraints - Site-specific power limits (optional)
- StaticLoad - Fixed power consumption (optional)
Entity Types and Examples
Compute Entities
Compute Nodes (ComputerSystem):
{
"Type": "ComputerSystem",
"Model": "DGX_H100",
"Name": "node001",
"Policy": "Node-High",
"Redfish": {
"@odata.type": "#ComputerSystem.v1_23_0.ComputerSystem",
"@odata.id": "/node001",
"Id": "node001",
"URL": "https://node001-bmc.example.com",
"SecretName": "node001"
}
}Power Distribution Entities
Power Domains (top-level power sources):
{
"Type": "PowerDomain",
"Name": "PD-A",
"Constraints": {
"PowerValue": {"Value": 1150000, "Type": "W"},
"PowerFactor": 0.9
},
"Redfish": {
"@odata.type": "#PowerDomain.v1_2_2.PowerDomain",
"@odata.id": "/PD-A",
"Id": "PD-A"
}
}Rack PDUs (power distribution units):
{
"Type": "PowerDistribution",
"Model": "RackPDU95_57500W",
"Name": "rPDU-A1-001",
"StaticLoad": {"Value": 3400, "Type": "W"},
"Redfish": {
"@odata.type": "#PowerDistribution.v1_4_0.PowerDistribution",
"@odata.id": "/rPDU-A1-001",
"Id": "rPDU-A1-001",
"EquipmentType": "RackPDU"
}
}Redfish Integration
Compute entities include Redfish configuration for BMC communication:
"Redfish": {
"@odata.type": "#ComputerSystem.v1_23_0.ComputerSystem",
"@odata.id": "/node001",
"Id": "node001",
"URL": "https://node001-bmc.example.com",
"SecretName": "node001"
}- @odata.type - Redfish schema type identifier
- @odata.id - Redfish resource identifier path
- Id - Unique identifier for the Redfish resource
- URL - BMC endpoint address (hostname or IP)
- SecretName - Reference to stored authentication credentials
Power Configuration
Constraints
Specify power limitations and efficiency:
"Constraints": {
"PowerValue": {"Value": 1150000, "Type": "W"},
"PowerFactor": 0.9
}Static Load
Add fixed power consumption from unmanaged devices:
"StaticLoad": {"Value": 3400, "Type": "W"}Example: Complete Entity Definition
{
"Entities": [
{
"Type": "PowerDomain",
"Name": "PD-A",
"Constraints": {
"PowerValue": {"Value": 1150000, "Type": "W"},
"PowerFactor": 0.9
},
"Redfish": {
"@odata.type": "#PowerDomain.v1_2_2.PowerDomain",
"@odata.id": "/PD-A",
"Id": "PD-A"
}
},
{
"Type": "PowerDistribution",
"Model": "RackPDU95_57500W",
"Name": "rPDU-A1-001",
"StaticLoad": {"Value": 3400, "Type": "W"},
"Redfish": {
"@odata.type": "#PowerDistribution.v1_4_0.PowerDistribution",
"@odata.id": "/rPDU-A1-001",
"Id": "rPDU-A1-001",
"EquipmentType": "RackPDU"
}
},
{
"Type": "ComputerSystem",
"Model": "DGX_H100",
"Name": "node001",
"Policy": "Node-High",
"Redfish": {
"@odata.type": "#ComputerSystem.v1_23_0.ComputerSystem",
"@odata.id": "/node001",
"Id": "node001",
"URL": "https://node001-bmc.example.com",
"SecretName": "node001"
}
}
]
}BMC Credentials
Entity BMC access requires secure credential management through secrets:
# Store BMC credentials
kubectl create secret generic node001 \
--from-literal=username=admin \
--from-literal=password=secret123
# Entity references the secret
"Redfish": {
"@odata.type": "#ComputerSystem.v1_23_0.ComputerSystem",
"@odata.id": "/node001",
"Id": "node001",
"URL": "https://node001-bmc.example.com",
"SecretName": "node001"
}Entity Generation
There are multiple ways that entities can be imported into DPS.
Manual Definition
Define entities explicitly in topology JSON files:
# Import entities from topology file
dpsctl topology import datacenter.jsonBCM Integration
For Base Cluster Manager environments, DPS can auto-generate entities:
# Generate entities from BCM
dpsctl topology generate-entities --from-bcmUsage
Entities are imported as part of topology files and can be queried through dpsctl:
# Import entities and topology
dpsctl topology import datacenter.json
# List entities
dpsctl entity list
# Show entity details
dpsctl entity get node001Further Reading
- Device Specifications - Templates that define entity capabilities
- Topologies - Connecting entities together
- Power Policies - Managing entity power behavior
- Secrets - Storing BMC credentials securely