PXE Mapping File (CSV)¶
File path: Specified by pxe_mapping_file_path in provision_config.yml
(e.g., /opt/omnia/input/project_default/pxe_mapping.csv)
The PXE mapping file is a CSV that assigns each physical server to a
functional group, hostname, and admin network addresses via mac addresses. Omnia reads this file during provision.yml to determine which role eachserver plays and how it is addressed on the network.
Column reference¶
| Column | Required | Description |
|---|---|---|
FUNCTIONAL_GROUP_NAME |
Yes | The role and architecture this node plays in the cluster. Must match a group name in software_config.json. Values: slurm_control_node_x86_64, slurm_node_x86_64, slurm_node_aarch64, login_node_x86_64, login_node_aarch64, login_compiler_node_aarch64, service_kube_control_plane_x86_64, service_kube_node_x86_64, os_x86_64, os_aarch64. |
GROUP_NAME |
Yes | A logical sub-group for organizing nodes (e.g., grp0, grp1, grp2, grp3, grp4, grp5, grp6, grp7, grp8, grp9). Used for rack inventory grouping. |
SERVICE_TAG |
Yes | Dell service tag of the server (7-character alphanumeric string found on the server chassis or in iDRAC). Used for unique node identification. |
PARENT_SERVICE_TAG |
No | Service tag of the parent chassis for multi-node systems (e.g., C6620, C6625). Leave blank for standalone servers. |
HOSTNAME |
Yes | Hostname to assign to the node. Must comply with hostname rules (see Hostname Requirements). |
ADMIN_MAC |
Yes | MAC address of the admin network NIC (used for PXE boot). Format: xx:yy:zz:aa:bb:cc. |
ADMIN_IP |
Yes | Static IP address on the admin network. Must be within the admin subnet defined in network_spec.yml and outside the dynamic_range. |
BMC_MAC |
No | MAC address of the BMC/iDRAC interface. Used for BMC discovery and address assignment. |
BMC_IP |
No | Static IP address for the BMC/iDRAC interface. Must be within the BMC subnet. |
IB_NIC_NAME |
No | InfiniBand NIC identifier (e.g., InfiniBand.Slot.7-1, NIC.InfiniBand.1-3). Used for InfiniBand network configuration. Leave blank if node does not have InfiniBand. |
IB_IP |
No | Static IP address on the InfiniBand network (e.g., 192.168.0.100). Must be within the InfiniBand subnet defined in network_spec.yml. Leave blank if node does not have InfiniBand. |
Sample csv files¶
Single subnet DHCP¶
pxe_mapping_file_single_subnet.csv
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
slurm_control_node_x86_64,grp0,ABCD12,,slurm-control-node1,xx:yy:zz:aa:bb:cc,172.16.107.52,xx:yy:zz:aa:bb:dd,172.17.107.52,InfiniBand.Slot.7-1,192.168.0.100
slurm_node_x86_64,grp2,ABCD34,ABFL82,slurm-node1,aa:bb:cc:dd:ee:ff,172.16.107.43,aa:bb:cc:dd:ee:aa,172.17.107.43,InfiniBand.Slot.7-1,192.168.0.101
slurm_node_x86_64,grp1,ABFG34,ABKD88,slurm-node2,aa:bb:cc:dd:ee:gg,172.16.107.44,aa:bb:cc:dd:ff:bb,172.17.107.44,InfiniBand.Slot.7-1,192.168.0.102
slurm_node_x86_64,grp1,BBFG35,ABKD88,slurm-node3,aa:bb:cc:dd:ee:hh,172.16.107.46,aa:bb:cc:dd:ff:cc,172.17.107.46,InfiniBand.Slot.7-1,192.168.0.103
login_node_x86_64,grp8,ABCD78,,login-compiler-node1,aa:bb:cc:dd:ee:gg,172.16.107.41,aa:bb:cc:dd:ee:bb,172.17.107.41,InfiniBand.Slot.7-1,192.168.0.104
login_compiler_node_x86_64,grp9,ABFG78,,login-compiler-node2,aa:bb:cc:dd:ee:gg,172.16.107.42,aa:bb:cc:dd:ee:bb,172.17.107.42,InfiniBand.Slot.7-1,192.168.0.105
service_kube_control_plane_x86_64,grp3,ABFG79,,service-kube-control-plane1,aa:bb:cc:dd:ee:ff,172.16.107.53,xx:yy:zz:aa:bb:ff,172.17.107.53,,InfiniBand.Slot.7-1,192.168.0.106
service_kube_control_plane_x86_64,grp4,ABFH78,,service-kube-control-plane2,aa:bb:cc:dd:ee:hh,172.16.107.54,xx:yy:zz:aa:bb:hh,172.17.107.54,,InfiniBand.Slot.7-1,192.168.0.107
service_kube_control_plane_x86_64,grp4,ABFH80,,service-kube-control-plane3,aa:bb:cc:dd:ee:ii,172.16.107.55,xx:yy:zz:aa:bb:ii,172.17.107.55,,InfiniBand.Slot.7-1,192.168.0.108
service_kube_node_x86_64,grp5,ABFL82,,service-kube-node1,aa:bb:cc:dd:ee:jj,172.16.107.56,xx:yy:zz:aa:bb:jj,172.17.107.56,InfiniBand.Slot.7-1,192.168.0.109
service_kube_node_x86_64,grp5,ABKD88,,service-kube-node2,aa:bb:cc:dd:ee:kk,172.16.107.57,xx:yy:zz:aa:bb:ff,172.17.107.57,InfiniBand.Slot.7-1,192.168.0.110
os_x86_64,grp7,EFG123,,os-node1,aa:bb:cc:dd:ee:21,10.41.0.12,aa:bb:cc:dd:ee:22,10.40.0.12,InfiniBand.Slot.7-11,10.42.0.12
os_aarch_64,grp8,EFG123,,os-node2,aa:bb:cc:dd:ee:21,10.41.0.12,aa:bb:cc:dd:ee:22,10.40.0.12,InfiniBand.Slot.7-11,10.42.0.12
Multi-subnet DHCP¶
pxe_mapping_file_multiple_subnet.csv
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
service_kube_control_plane_x86_64,grp1,DEF456,,service-kube-control-plane1,aa:bb:cc:dd:ee:03,10.41.1.15,aa:bb:cc:dd:ee:04,10.40.1.15,InfiniBand.Slot.7-2,10.42.1.15
service_kube_control_plane_x86_64,grp1,GHI789,,service-kube-control-plane2,aa:bb:cc:dd:ee:05,10.41.1.16,aa:bb:cc:dd:ee:06,10.40.1.16,InfiniBand.Slot.7-3,10.42.1.16
service_kube_control_plane_x86_64,grp1,JKL012,,service-kube-control-plane3,aa:bb:cc:dd:ee:07,10.41.1.17,aa:bb:cc:dd:ee:08,10.40.1.17,InfiniBand.Slot.7-4,10.42.1.17
service_kube_node_x86_64,grp2,MNO345,,service-kube-node1,aa:bb:cc:dd:ee:09,10.41.1.18,aa:bb:cc:dd:ee:10,10.40.1.18,InfiniBand.Slot.7-5,10.42.1.18
service_kube_node_x86_64,grp2,PQR678,,service-kube-node2,aa:bb:cc:dd:ee:11,10.41.1.19,aa:bb:cc:dd:ee:12,10.40.1.19,InfiniBand.Slot.7-6,10.42.1.19
slurm_control_node_x86_64,grp3,ABC123,,slurm-control-node1,aa:bb:cc:dd:ee:01,10.41.0.10,aa:bb:cc:dd:ee:02,10.40.0.10,InfiniBand.Slot.7-1,10.42.0.10
slurm_node_x86_64,grp4,STU901,2LY0B33,slurm-node1,aa:bb:cc:dd:ee:13,10.41.2.22,aa:bb:cc:dd:ee:14,10.40.2.22,InfiniBand.Slot.7-7,10.42.2.22
slurm_node_x86_64,grp4,VWX234,2LY0B33,slurm-node2,aa:bb:cc:dd:ee:15,10.41.2.23,aa:bb:cc:dd:ee:16,10.40.2.23,InfiniBand.Slot.7-8,10.42.2.23
login_compiler_node_x86_64,grp5,YZA567,,login-compiler-node1,aa:bb:cc:dd:ee:17,10.41.2.24,aa:bb:cc:dd:ee:18,10.40.2.24,InfiniBand.Slot.7-9,10.42.2.24
login_node_x86_64,grp6,BCD890,,login-node1,aa:bb:cc:dd:ee:19,10.41.0.11,aa:bb:cc:dd:ee:20,10.40.0.11,InfiniBand.Slot.7-10,10.42.0.11
os_x86_64,grp7,EFG123,,os-node1,aa:bb:cc:dd:ee:21,10.41.0.12,aa:bb:cc:dd:ee:22,10.40.0.12,InfiniBand.Slot.7-11,10.42.0.12
os_aarch_64,grp8,EFG123,,os-node2,aa:bb:cc:dd:ee:21,10.41.0.12,aa:bb:cc:dd:ee:22,10.40.0.12,InfiniBand.Slot.7-11,10.42.0.12
Node Role Examples¶
Slurm control node (x86_64)
Example: Slurm control node
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
slurm_control_node_x86_64,grp0,ABCD12,,slurm-control-node1,xx:yy:zz:aa:bb:cc,172.16.107.52,xx:yy:zz:aa:bb:dd,172.17.107.52,InfiniBand.Slot.7-1,192.168.0.100
- Runs
slurmctldandslurmdbd. - Exactly one node should have this functional group per Slurm cluster.
PARENT_SERVICE_TAGis empty (standalone server).- Includes InfiniBand NIC for high-speed cluster communication.
Slurm compute nodes (AArch64)
Example: Slurm compute nodes with parent chassis
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
slurm_node_aarch64,grp1,ABCD34,ABFL82,slurm-node1,aa:bb:cc:dd:ee:ff,172.16.107.43,aa:bb:cc:dd:ee:gg,172.17.107.43,InfiniBand.Slot.7-2,192.168.0.101
slurm_node_aarch64,grp2,ABFG34,ABKD88,slurm-node2,aa:bb:cc:dd:ee:ff,172.16.107.44,aa:bb:cc:dd:ff:gg,172.17.107.44,NIC.InfiniBand.1-3,192.168.0.102
- Runs
slurmd. PARENT_SERVICE_TAGidentifies the shared chassis (multi-node systems like C6620).- Each node has its own service tag, hostname, and network addresses.
- Includes InfiniBand NIC for high-speed cluster communication.
Login node (AArch64)
Example: Login node
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
login_node_aarch64,grp9,ABFG78,,login-node1,aa:bb:cc:dd:ee:gg,172.16.107.42,aa:bb:cc:dd:ee:bb,172.17.107.42,NIC.InfiniBand.1-1,192.168.0.104
- Provides interactive SSH access for users to submit jobs.
- Does not run
slurmd; configured as a Slurm client only. - Includes InfiniBand for cluster communication.
Kubernetes control plane (x86_64)
Example: Kubernetes control plane
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
service_kube_control_plane_x86_64,grp3,ABFG79,,service-kube-control-plane1,aa:bb:cc:dd:ee:ff,172.16.107.53,xx:yy:zz:aa:bb:ff,172.17.107.53,,
- Runs the Kubernetes API server, etcd, scheduler, and controller-manager.
- For HA, use 3 control plane nodes (see HA Config).
- InfiniBand is optional for control plane nodes.
Kubernetes worker nodes (x86_64)
Example: Kubernetes worker nodes
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
service_kube_node_x86_64,grp5,ABFL82,,service-kube-node1,aa:bb:cc:dd:ee:jj,172.16.107.56,xx:yy:zz:aa:bb:jj,172.17.107.56,,
- Runs
kubeletandkube-proxy; hosts application pods. - InfiniBand is optional for worker nodes.
Generic OS nodes (x86_64 and AArch64)
Example: Generic OS nodes
FUNCTIONAL_GROUP_NAME,GROUP_NAME,SERVICE_TAG,PARENT_SERVICE_TAG,HOSTNAME,ADMIN_MAC,ADMIN_IP,BMC_MAC,BMC_IP,IB_NIC_NAME,IB_IP
os_x86_64,grp6,ABEF56,,os-node1,xx:yy:zz:aa:bb:ll,172.16.107.60,xx:yy:zz:aa:bb:ee,172.17.107.60,,
os_aarch64,grp7,ABEF78,,os-node2,xx:yy:zz:aa:bb:ab,172.16.107.61,xx:yy:zz:aa:bb:ac,172.17.107.61,,
- Generic nodes with no specific cluster role.
- Useful for standalone compute, storage, or utility nodes.
- InfiniBand is optional.
Validation rules¶
| Rule | Description |
|---|---|
Unique SERVICE_TAG |
No two rows may share the same service tag. |
Unique HOSTNAME |
Each hostname must be unique across the entire file. |
Unique ADMIN_IP |
Admin IP addresses must not overlap with each other or with the OIM's admin IP. |
Unique ADMIN_MAC |
Each admin MAC address must be unique. |
Valid FUNCTIONAL_GROUP_NAME |
Must be one of the recognized group names listed above. |
| Hostname format | Lowercase, no domain suffix, RFC 952/1123 compliant. See Hostname Requirements. |
| IP within subnet | ADMIN_IP must fall within the admin network subnet and outside the dynamic_range. BMC_IP must fall within the BMC subnet. |
Note
- PXE mapping file must exist at
/opt/omnia/input/project_default/inside the omnia_core container.
Info
- Provision Config -- Where the mapping file path is specified.
- Software Config -- Software packages per functional group.
- Hostname Requirements -- Hostname rules.