airshipctl/docs/source/hardware_profile.md
Mahnoor Asghar 73b3d4e83f Add physicalDisks and controller fields to RAID
This adds physicalDisks and controller fields to the the hardware profile guide,
and to the example hardwareprofile.

Relates-To: #499
Closes: #499
Change-Id: I6c3107b846d1a9c94abffe378a9a07a2f089ef99
2021-11-30 07:35:43 +00:00

102 lines
3.5 KiB
Markdown

# 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][3]
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][3] 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:
``` yaml
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:
``` yaml
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][1] API
documentation.
Note that this has only been tested on Dell hardware.
For more details on the example hardwareprofile, see [the repo][2].
[1]: https://github.com/metal3-io/baremetal-operator/blob/master/docs/api.md
[2]: https://opendev.org/airship/airshipctl/src/branch/master/manifests/function/hardwareprofile-example
[3]: https://github.com/metal3-io/baremetal-operator/tree/master/apis/metal3.io/v1alpha1