BareMetal Machine roles

MachineRoles helps identify the role(s) that BMM fulfills in the Nexus cluster. In other words, it allows for the identification of the Nexus platform Kubernetes control plane nodes, the management nodes where the platform software runs & worker nodes that are reserved for tenant workloads.

The following roles are assigned to BMM resources:

  • Control plane: These BMM runs the Kubernetes control plane agents for Nexus platform cluster.
  • Management plane: The BMM runs the Nexus platform agents including controllers and extensions.
  • Compute plane: The BMM responsible for running actual tenant workloads including Nexus Kubernetes Clusters and Virtual Machines.

How does it work?

Appropriate Kubernetes labels get applied to the BMM resources to identify the role(s) that BMM fulfills in the Nexus cluster during deployment. The MachineRoles property against the BMM resource is derived from the kubernetes labels applied to the BMM resource.

How do I infer what role(s) a BMM is assigned to?

In any standard Nexus multi-rack instance with 3 or more compute racks, there will be 3 powered on control plane nodes and one node that is powered off but available. The new machineRole field is used in addition to the powerState and detailedStatus fields to determine the spare control plane node in a Nexus instance.

This command lists the control plane servers along with their power states and statuses:

az networkcloud baremetalmachine list -g <resource-group> --sub <subscription> --query "sort_by([].{name:name,readyState:readyState, detailedStatus:detailedStatus, detailedStatusMessage:detailedStatusMessage, powerState:powerState, machineRoles:machineRoles | join(', ', @)}, &name)" --output table

Sample output:

Name ReadyState DetailedStatus DetailedStatusMessage PowerState MachineRoles Notes
x01dev01c1mg01 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/control-plane=true Control plane node
x01dev01c2mg02* False Available Available to participate in the cluster Off platform.afo-nc.microsoft.com/control-plane=true Spare control plane node
x01dev01c3mg01 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/control-plane=true Control plane node
x01dev01c4mg01 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/control-plane=true Control plane node
x01dev01c1mg02 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/management-plane=true Management plane node
x01dev01c2mg01 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/management-plane=true Management plane node
x01dev01c3mg02 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/management-plane=true Management plane node
x01dev01c4mg02 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/management-plane=true Management plane node
x01dev01c1co01 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/compute-plane=true Compute plane node
x01dev01c1co02 True Provisioned The OS is provisioned to the machine On platform.afo-nc.microsoft.com/compute-plane=true Compute plane node

*In this example, x01dev01c2mg02 is the spare control plane node that is currently in powered off state. And is still available to take up the role of control plane, in scenarios where active control plane node goes down for any reason.