Hardware Profile Guide

This document explains the functionality of RAID and firmware configuration that is available in airshipctl. This will assist to author Baremetal Host documents with added RAID and firmware functionality.

The Host Generator M3 Function

Airshipctl has a hostgenerator-m3 function which it uses to generate Metal3 Baremetal Host documents. This generator uses a hosttemplate to templatize a BMH specification. It takes a set of parameters and a template as inputs and provides BMH documents as outputs, making it easier to generate a large set of BMH documents efficiently.

The Example Hardware Profile

A Hardware Profile, in airshipctl terms, is a collection of parameters that comprise a hardware level configuration of a server. Currently, it contains RAID and firmware configurations. And later, this can be extended.

The example hardware profile is one such set, which is available as a reference for all the supported parameters. You can modify this to your liking to generate hardwareprofiles that suit your environment.

Firmware Section

The firmware parameters supported, in the example profile are as follows:

  firmware:
    sriovEnabled: false
    virtualizationDisabled: false
    simultaneousMultithreadingDisabled: false

These are the default values, you can adjust to your liking

RAID Section

The RAID levels supported are 0, 1, 5, 6, 1+0, 5+0, 6+0. Some examples of using these levels in your configurations are given:

  raid:
    hardwareRAIDVolumes:
    - name: "VirtualDisk1"
      level: "0"
      sizeGibibytes: 2048
      numberOfPhysicalDisks: 2
      rotational: False
    - name: "VirtualDisk2"
      level: "1"
      controller: "RAID.Slot.5-1"
      physicalDisks:
      - "Disk.Bay.0:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.1:Enclosure.Internal.0-1:RAID.Slot.5-1"
    - name: "VirtualDisk3"
      level: "5"
      sizeGibibytes: 3000
      numberOfPhysicalDisks: 3
      rotational: True
    - name: "VirtualDisk4"
      level: "6"
      sizeGibibytes: 4000
      controller: "RAID.Slot.5-1"
      physicalDisks:
      - "Disk.Bay.0:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.1:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.2:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.3:Enclosure.Internal.0-1:RAID.Slot.5-1"
    - name: "VirtualDisk5"
      level: "1+0"
      sizeGibibytes: 4000
      numberOfPhysicalDisks: 4
    - name: "VirtualDisk6"
      level: "5+0"
      controller: "RAID.Slot.5-1"
      physicalDisks:
      - "Disk.Bay.0:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.1:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.2:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.3:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.4:Enclosure.Internal.0-1:RAID.Slot.5-1"
      - "Disk.Bay.5:Enclosure.Internal.0-1:RAID.Slot.5-1"
    - name: "VirtualDisk7"
      level: "6+0"
      numberOfPhysicalDisks: 8
      sizeGibibytes: 16000
      rotational: False

For additional detail on these parameters, see the Baremetal Host API documentation.

Note that this has only been tested on Dell hardware.

For more details on the example hardwareprofile, see the repo.