commit 58c8284f74e6d886514edd12690f15085ee2fef8 Author: Noor Muhammad Malik Date: Mon Aug 31 17:11:24 2020 +0500 Add RAID to example hardwareprofile This adds supported RAID levels and their associated parameters in the example hardwareprofile. This is an extension to the hardwareprofile that was created by a previous patch. https://review.opendev.org/#/c/740132/ Since there is no default RAID profile, the template does not have a RAID field in it, only the VariableCatalogue is updated. Change-Id: I50c82ce5f8f66aad132571e631f231623704862a Closes: #337 diff --git a/manifests/function/hardwareprofile-example/README.md b/manifests/function/hardwareprofile-example/README.md index ecc652d..df9bcfa 100644 --- a/manifests/function/hardwareprofile-example/README.md +++ b/manifests/function/hardwareprofile-example/README.md @@ -2,12 +2,24 @@ Function: hardwareprofile-example ================================= This function defines a hardware profile that can be consumed by the -hostgenerator-m3 function, and which has the same values as the default -profile defined in that function. It serves as an example for how other +hostgenerator-m3 function. It serves as an example for how other hardware profile functions can be created and consumed. -The `/replacements` kustomization contains a substution rule that injects +The `example` profile currently has fields for RAID and firmware configurations. +This is to provide as a reference for utilizing all the supported RAID levels +as well as all the supported firmware configurations. + +For firmware configurations, the values from `example` profile are carried over +to the `default` profile of hostgenerator-m3. That is because same defaults +are exercised in metal3 baremetal-operator as well. See [bios-config spec] +However, for RAID configurations, since +there is no `default` profile, the template does *__not__* have any RAID fields. +Nevertheless, all the supported RAID configurations +have been listed in the `hardwareprofile.yaml` for your reference. + +The `/replacements` kustomization contains a substitution rule that injects the profile into the hostgenerator BMH template. Please see the -`manifests/type/gating` type and `manifests/type/test-site` +`manifests/type/gating` type and `manifests/site/test-site` site kustomization.yamls to see how a hardwareprofile function can be wired in. +[bios-config spec]: https://github.com/metal3-io/metal3-docs/blob/master/design/baremetal-operator/bios-config.md diff --git a/manifests/function/hardwareprofile-example/hardwareprofile.yaml b/manifests/function/hardwareprofile-example/hardwareprofile.yaml index 0b71cf5..b38b2b3 100644 --- a/manifests/function/hardwareprofile-example/hardwareprofile.yaml +++ b/manifests/function/hardwareprofile-example/hardwareprofile.yaml @@ -8,3 +8,25 @@ hardwareProfile: sriovEnabled: false virtualizationDisabled: false simultaneousMultithreadingDisabled: false + raid: + hardwareRAIDVolumes: + - name: "VirtualDisk1" + level: "1+0" + sizeGibibytes: 1024 + numberOfPhysicalDisks: 4 + rotational: False + - name: "VirtualDisk2" + level: "1" + sizeGibibytes: 500 + numberOfPhysicalDisks: 2 + rotational: True + - name: "VirtualDisk3" + level: "0" + sizeGibibytes: 500 + numberOfPhysicalDisks: 2 + rotational: True + - name: "VirtualDisk4" + level: "0" + sizeGibibytes: 250 + numberOfPhysicalDisks: 1 + rotational: False \ No newline at end of file diff --git a/manifests/function/hostgenerator-m3/hosttemplate.yaml b/manifests/function/hostgenerator-m3/hosttemplate.yaml index 3de8bdc..cd56efe 100644 --- a/manifests/function/hostgenerator-m3/hosttemplate.yaml +++ b/manifests/function/hostgenerator-m3/hosttemplate.yaml @@ -47,6 +47,12 @@ template: | credentialsName: {{ $hostName }}-bmc-secret firmware: {{ toYaml $hardwareProfile.firmware | indent 4 }} + {{- /* If no raid is defined for a host, simply skip. There is no default setting for raid */ -}} + {{- /* Reference for RAID: https://github.com/metal3-io/metal3-docs/pull/134 */ -}} + {{- if $hardwareProfile.raid }} + raid: + {{ toYaml $hardwareProfile.raid | indent 4 }} + {{- end }} --- apiVersion: v1