Skip to content

Commit f62121e

Browse files
committed
TELCODOCS-356: Added modules for day 2 updates to firmware settings and components..
1 parent edc1f8b commit f62121e

13 files changed

+269
-45
lines changed

installing/installing_bare_metal/ipi/ipi-install-post-installation-configuration.adoc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ include::modules/bmo-about-the-hostfirmwaresettings-resource.adoc[leveloffset=+2
4242
// Getting the HostFirmwareSettings resource
4343
include::modules/bmo-getting-the-hostfirmwaresettings-resource.adoc[leveloffset=+2]
4444
// Editing the HostFirmwareSettings resource
45-
include::modules/bmo-editing-the-hostfirmwaresettings-resource.adoc[leveloffset=+2]
45+
include::modules/bmo-editing-the-hostfirmwaresettings-resource-of-a-provisioned-host.adoc[leveloffset=+2]
46+
// Patching the HostFirmawareSettings resource
47+
include::modules/bmo-patching-the-hostfirmwaresettings-resource.adoc[leveloffset=+2]
4648
// Verifying the HostFirmware Settings resource is valid
4749
include::modules/bmo-verifying-the-hostfirmware-settings-resource-is-valid.adoc[leveloffset=+2]
4850
// About the FirmwareSchema resource
@@ -54,4 +56,10 @@ include::modules/bmo-about-the-hostfirmwarecomponents-resource.adoc[leveloffset=
5456
// Getting the HostFirmwareComponents resource
5557
include::modules/bmo-getting-the-hostfirmwarecomponents-resource.adoc[leveloffset=+2]
5658
// Editing the HostFirmwareComponents resource
57-
include::modules/bmo-editing-the-hostfirmwarecomponents-resource.adoc[leveloffset=+2]
59+
include::modules/bmo-editing-the-hostfirmwarecomponents-resource-of-a-provisioned-host.adoc[leveloffset=+2]
60+
// Patching the HostFirmawareComponents resource
61+
include::modules/bmo-patching-the-hostfirmwarecomponents-resource.adoc[leveloffset=+2]
62+
// About the HostUpdatePolicy resource
63+
include::modules/bmo-about-the-hostupdatepolicy-resource.adoc[leveloffset=+2]
64+
// Setting the HostUpdatePolicy resource
65+
include::modules/bmo-setting-the-hostupdatepolicy-resource.adoc[leveloffset=+2]

modules/bmo-about-the-hostfirmwaresettings-resource.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ The `HostFirmwareSettings` resource contains two sections:
1313
. The `HostFirmwareSettings` spec.
1414
. The `HostFirmwareSettings` status.
1515

16+
[NOTE]
17+
====
18+
Reading and modifying firmware settings is only supported for drivers based on the vendor-independent Redfish protocol, Fujitsu iRMC or HP iLO.
19+
====
20+
1621
== The `HostFirmwareSettings` spec
1722

1823
The `spec` section of the `HostFirmwareSettings` resource defines the desired state of the host's BIOS, and it is empty by default. Ironic uses the settings in the `spec.settings` section to update the baseboard management controller (BMC) when the host is in the `Preparing` state. Use the `FirmwareSchema` resource to ensure that you do not send invalid name/value pairs to hosts. See "About the FirmwareSchema resource" for additional details.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// This is included in the following assemblies:
2+
//
3+
// * installing/installing_bare_metal/ipi/ipi-install-post-installation-configuration.adoc
4+
5+
:_mod-docs-content-type: REFERENCE
6+
[id="bmo-about-the-hostupdatepolicy-resource_{context}"]
7+
= About the HostUpdatePolicy resource
8+
9+
You can use the `HostUpdatePolicy` resource to enable or disable applying live updates to the firmware settings, BMC settings, or firmware settings of each bare-metal host. By default, the Operator disables live updates to already provisioned bare-metal hosts by default.
10+
11+
.The `HostUpdatePolicy` spec
12+
13+
The `spec` section of the `HostUpdatePolicy` resource provides two settings:
14+
15+
`firmwareSettings`:: This setting corresponds to the `HostFirmwareSettings` resource.
16+
17+
`firmwareUpdates`:: This setting corresponds to the `HostFirmwareComponents` resource.
18+
19+
When you set the value to `onPreparing`, you can only update the host during provisioning, which is the default setting. When you set the value to `onReboot`, you can update a provisioned host by applying the resource and rebooting the bare-metal host. Then, follow the procedure for editing the `HostFirmwareSettings` or `HostFirmwareComponents` resource.
20+
21+
.Example `HostUpdatePolicy` resource
22+
[source,yaml]
23+
----
24+
apiVersion: metal3.io/v1alpha1
25+
kind: HostUpdatePolicy
26+
metadata:
27+
name: <hostname> <1>
28+
namespace: openshift-machine-api
29+
spec:
30+
firmwareSettings: <setting> <2>
31+
firmwareUpdates: <setting>
32+
----
33+
<1> The name of the bare-metal host.
34+
<2> The update policy setting. Specify `onPreparing` to disable live updates. Specify `onReboot` to enable live updates.

modules/bmo-bare-metal-operator-architecture.adoc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ image::715_OpenShift_Bare_Metal_Operator_updates_0624.png[BMO architecture overv
1212

1313
.BareMetalHost
1414

15-
The `BareMetalHost` resource defines a physical host and its properties. When you provision a bare-metal host to the cluster, you must define a `BareMetalHost` resource for that host. For ongoing management of the host, you can inspect the information in the `BareMetalHost` or update this information.
15+
The `BareMetalHost` resource defines a physical host and its properties. When you provision a bare-metal host to the cluster, you must define a `BareMetalHost` resource for that host. For ongoing management of the host, you can inspect the information in the `BareMetalHost` resource or update this information.
1616

1717
The `BareMetalHost` resource features provisioning information such as the following:
1818

@@ -39,7 +39,7 @@ You must adhere to the schema specific to the vendor firmware when you edit the
3939
====
4040

4141
.FirmwareSchema
42-
Firmware settings vary among hardware vendors and host models. A `FirmwareSchema` resource is a read-only resource that contains the types and limits for each firmware setting on each host model. The data comes directly from the BMC by using the Ironic service. The `FirmwareSchema` resource enables you to identify valid values you can specify in the `spec` field of the `HostFirmwareSettings` resource.
42+
Firmware settings vary among hardware vendors and host models. A `FirmwareSchema` resource is a read-only resource that contains the types and limits for each firmware setting on each host model. The data comes directly from the BMC by using the Ironic service. You can use the `FirmwareSchema` resource to identify valid values that you can specify in the `spec` field of the `HostFirmwareSettings` resource.
4343

4444
A `FirmwareSchema` resource can apply to many `BareMetalHost` resources if the schema is the same.
4545

@@ -51,3 +51,7 @@ Metal^3^ provides the `HostFirmwareComponents` resource, which describes BIOS an
5151
.Additional resources
5252
* link:https://metal3.io/[Metal^3^ API service for provisioning bare-metal hosts]
5353
* link:https://ironicbaremetal.org/[Ironic API service for managing bare-metal infrastructure]
54+
55+
.HostUpdatePolicy
56+
57+
The `HostUpdatePolicy` resource can enable or disable live updates to the firmware settings, BMC settings, or BIOS settings of bare-metal hosts. By default, the `HostUpdatePolicy` resource for each bare-metal host restricts updates to hosts during provisioning. You must modify the `HostUpdatePolicy` resource for a host when you want to update the firmware settings, BMC settings, or BIOS settings after provisioning the host.

modules/bmo-config-using-bare-metal-operator.adoc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ When deploying {product-title} on bare-metal hosts, there are times when you nee
1111
You can use the Bare Metal Operator (BMO) to provision, manage, and inspect bare-metal hosts in your cluster. The BMO can complete the following operations:
1212

1313
* Provision bare-metal hosts to the cluster with a specific image.
14-
* Turn on or off a host.
14+
* Turn a host on or off.
1515
* Inspect hardware details of the host and report them to the bare-metal host.
1616
* Upgrade or downgrade a host's firmware to a specific version.
1717
* Inspect firmware and configure BIOS settings.
@@ -23,9 +23,12 @@ The BMO uses the following resources to complete these tasks:
2323
* `HostFirmwareSettings`
2424
* `FirmwareSchema`
2525
* `HostFirmwareComponents`
26+
* `HostUpdatePolicy`
2627
2728
The BMO maintains an inventory of the physical hosts in the cluster by mapping each bare-metal host to an instance of the `BareMetalHost` custom resource definition. Each `BareMetalHost` resource features hardware, software, and firmware details. The BMO continually inspects the bare-metal hosts in the cluster to ensure each `BareMetalHost` resource accurately details the components of the corresponding host.
2829

2930
The BMO also uses the `HostFirmwareSettings` resource, the `FirmwareSchema` resource, and the `HostFirmwareComponents` resource to detail firmware specifications and upgrade or downgrade firmware for the bare-metal host.
3031

3132
The BMO interfaces with bare-metal hosts in the cluster by using the Ironic API service. The Ironic service uses the Baseboard Management Controller (BMC) on the host to interface with the machine.
33+
34+
The BMO `HostUpdatePolicy` can enable or disable live updates to the firmware settings, BMC settings, or BIOS settings of a bare-metal host after provisioning the host. By default, the BMO disables live updates.

modules/bmo-editing-the-hostfirmwarecomponents-resource.adoc renamed to modules/bmo-editing-the-hostfirmwarecomponents-resource-of-a-provisioned-host.adoc

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
// This is included in the following assemblies:
22
//
33
// * installing/installing_bare_metal/ipi/ipi-install-post-installation-configuration.adoc
4+
:_mod-docs-content-type: PROCEDURE
5+
[id="bmo-editing-the-hostfirmwarecomponents-resource-of-a-provisioned-host_{context}"]
6+
= Editing the HostFirmwareComponents resource of a provisioned host
47

5-
[id="bmo-editing-the-hostfirmwarecomponents-resource_{context}"]
6-
= Editing the HostFirmwareComponents resource
7-
8-
You can edit the `HostFirmwareComponents` resource of a node.
8+
You can edit the `HostFirmwareComponents` resource of a provisioned host.
99

1010
.Procedure
1111

12-
. Get the detailed list of `HostFirmwareComponents` resources:
12+
. Get the detailed list of `HostFirmwareComponents` resources by running the following command:
1313
+
1414
[source,terminal]
1515
----
1616
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
1717
----
1818

19-
. Edit a host's `HostFirmwareComponents` resource:
19+
. Edit the `HostFirmwareComponents` resource by running the following command:
2020
+
2121
[source,terminal]
2222
----
2323
$ oc edit <host_name> hostfirmwarecomponents -n openshift-machine-api <1>
2424
----
2525
<1> Where `<host_name>` is the name of the host. The `HostFirmwareComponents` resource will open in the default editor for your terminal.
26+
27+
. Make the appropriate edits.
2628
+
2729
.Example output
2830
[source,yaml]
@@ -76,49 +78,49 @@ status:
7678
<1> To set a BIOS version, set the `name` attribute to `bios`.
7779
<2> To set a BIOS version, set the `url` attribute to the URL for the firmware version of the BIOS.
7880
<3> To set a BMC version, set the `name` attribute to `bmc`.
79-
<4> To set a BMC version, set the `url` attribute to the URL for the firmware verison of the BMC.
81+
<4> To set a BMC version, set the `url` attribute to the URL for the firmware version of the BMC.
8082
8183
. Save the changes and exit the editor.
8284
83-
. Get the host’s machine name:
85+
. Get the host machine name by running the following command:
8486
+
8587
[source,terminal]
8688
----
8789
$ oc get bmh <host_name> -n openshift-machine name <1>
8890
----
89-
<1> Where `<host_name>` is the name of the host. The machine name appears under the `CONSUMER` field.
91+
<1> Where `<host_name>` is the name of the host. The terminal displays the machine name under the `CONSUMER` field.
9092
91-
. Annotate the machine to delete it from the machine set:
93+
. Annotate the machine to delete it from the machine set by running the following command:
9294
+
9395
[source,terminal]
9496
----
9597
$ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n openshift-machine-api <1>
9698
----
9799
<1> Where `<machine_name>` is the name of the machine to delete.
98100
99-
. Get a list of nodes and count the number of worker nodes:
101+
. Get a list of nodes and count the number of worker nodes by running the following command:
100102
+
101103
[source,terminal]
102104
----
103105
$ oc get nodes
104106
----
105107
106-
. Get the machine set:
108+
. Get the machine set by running the following command:
107109
+
108110
[source,terminal]
109111
----
110112
$ oc get machinesets -n openshift-machine-api
111113
----
112114
113-
. Scale the machine set:
115+
. Scale down the machine set by running the following command:
114116
+
115117
[source,terminal]
116118
----
117119
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1> <1>
118120
----
119121
<1> Where `<machineset_name>` is the name of the machine set and `<n-1>` is the decremented number of worker nodes.
120122
121-
. When the host enters the `Available` state, scale up the machine set to make the `HostFirmwareComponents` resource changes take effect:
123+
. When the host enters the `Available` state, scale up the machine set to make the `HostFirmwareComponents` resource changes take effect by running the following command:
122124
+
123125
[source,terminal]
124126
----

modules/bmo-editing-the-hostfirmwaresettings-resource.adoc renamed to modules/bmo-editing-the-hostfirmwaresettings-resource-of-a-provisioned-host.adoc

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,30 @@
33
// * installing/installing_bare_metal/ipi/ipi-install-post-installation-configuration.adoc
44

55
:_mod-docs-content-type: PROCEDURE
6-
[id="bmo-editing-the-hostfirmwaresettings-resource_{context}"]
7-
= Editing the HostFirmwareSettings resource
6+
[id="bmo-editing-the-hostfirmwaresettings-resource-of-a-provisioned-host_{context}"]
7+
= Editing the HostFirmwareSettings resource of a provisioned host
88

9-
You can edit the `HostFirmwareSettings` of provisioned hosts.
9+
To make changes to the `HostFirmwareSettings` spec for a provisioned host, perform the following actions:
10+
11+
* Delete the host from the machine set.
12+
* Scale down the machine set.
13+
* Scale up the machine set to make the changes take effect.
1014
1115
[IMPORTANT]
1216
====
1317
You can only edit hosts when they are in the `provisioned` state, excluding read-only values. You cannot edit hosts in the `externally provisioned` state.
14-
1518
====
1619

1720
.Procedure
1821

19-
. Get the list of `HostFirmwareSettings` resources:
22+
. Get the list of `HostFirmwareSettings` resources by running the following command:
2023
+
2124
[source,terminal]
2225
----
2326
$ oc get hfs -n openshift-machine-api
2427
----
2528

26-
. Edit a host's `HostFirmwareSettings` resource:
29+
. Edit the host `HostFirmwareSettings` resource by running the following command:
2730
+
2831
[source,terminal]
2932
----
@@ -32,7 +35,7 @@ $ oc edit hfs <host_name> -n openshift-machine-api
3235
+
3336
Where `<host_name>` is the name of a provisioned host. The `HostFirmwareSettings` resource will open in the default editor for your terminal.
3437

35-
. Add name/value pairs to the `spec.settings` section:
38+
. Add name and value pairs to the `spec.settings` section by running the following command:
3639
+
3740
.Example
3841
[source,terminal]
@@ -45,16 +48,16 @@ spec:
4548

4649
. Save the changes and exit the editor.
4750

48-
. Get the host's machine name:
51+
. Get the host's machine name by running the following command:
4952
+
5053
[source,terminal]
5154
----
5255
$ oc get bmh <host_name> -n openshift-machine name
5356
----
5457
+
55-
Where `<host_name>` is the name of the host. The machine name appears under the `CONSUMER` field.
58+
Where `<host_name>` is the name of the host. The terminal displays the machine name under the `CONSUMER` field.
5659
57-
. Annotate the machine to delete it from the machineset:
60+
. Annotate the machine to delete it from the machine set by running the following command:
5861
+
5962
[source,terminal]
6063
----
@@ -63,34 +66,34 @@ $ oc annotate machine <machine_name> machine.openshift.io/delete-machine=true -n
6366
+
6467
Where `<machine_name>` is the name of the machine to delete.
6568
66-
. Get a list of nodes and count the number of worker nodes:
69+
. Get a list of nodes and count the number of worker nodes by running the following command:
6770
+
6871
[source,terminal]
6972
----
7073
$ oc get nodes
7174
----
7275
73-
. Get the machineset:
76+
. Get the machine set by running the following command:
7477
+
7578
[source,terminal]
7679
----
7780
$ oc get machinesets -n openshift-machine-api
7881
----
7982
80-
. Scale the machineset:
83+
. Scale the machine set by running the following command:
8184
+
8285
[source,terminal]
8386
----
8487
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n-1>
8588
----
8689
+
87-
Where `<machineset_name>` is the name of the machineset and `<n-1>` is the decremented number of worker nodes.
90+
Where `<machineset_name>` is the name of the machine set and `<n-1>` is the decremented number of worker nodes.
8891
89-
. When the host enters the `Available` state, scale up the machineset to make the `HostFirmwareSettings` resource changes take effect:
92+
. When the host enters the `Available` state, scale up the machine set to make the `HostFirmwareSettings` resource changes take effect by running the following command:
9093
+
9194
[source,terminal]
9295
----
9396
$ oc scale machineset <machineset_name> -n openshift-machine-api --replicas=<n>
9497
----
9598
+
96-
Where `<machineset_name>` is the name of the machineset and `<n>` is the number of worker nodes.
99+
Where `<machineset_name>` is the name of the machine set and `<n>` is the number of worker nodes.

modules/bmo-getting-the-firmwareschema-resource.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ Each host model from each vendor has different BIOS settings. When editing the `
1010

1111
.Procedure
1212

13-
. To get a list of `FirmwareSchema` resource instances, execute the following:
13+
. Get the list of `FirmwareSchema` resource instances by running the following command:
1414
+
1515
[source,terminal]
1616
----
1717
$ oc get firmwareschema -n openshift-machine-api
1818
----
1919

20-
. To get a particular `FirmwareSchema` instance, execute:
20+
. Get a particular `FirmwareSchema` instance by running the following command:
2121
+
2222
[source,terminal]
2323
----

modules/bmo-getting-the-hostfirmwarecomponents-resource.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
// This is included in the following assemblies:
22
//
33
// * installing/installing_bare_metal/ipi/ipi-install-post-installation-configuration.adoc
4-
4+
:_mod-docs-content-type: PROCEDURE
55
[id="bmo-getting-the-hostfirmwarecomponents-resource_{context}"]
66
= Getting the HostFirmwareComponents resource
77

88
The `HostFirmwareComponents` resource contains the specific firmware version of the BIOS and baseboard management controller (BMC) of a physical host. You must get the `HostFirmwareComponents` resource for a physical host to review the firmware version and status.
99

1010
.Procedure
1111

12-
. Get the detailed list of `HostFirmwareComponents` resources:
12+
. Get the detailed list of `HostFirmwareComponents` resources by running the following command:
1313
+
1414
[source,terminal]
1515
----
1616
$ oc get hostfirmwarecomponents -n openshift-machine-api -o yaml
1717
----
1818

19-
. Get the list of `HostFirmwareComponents` resources:
19+
. Get the list of `HostFirmwareComponents` resources by running the following command:
2020
+
2121
[source,terminal]
2222
----
2323
$ oc get hostfirmwarecomponents -n openshift-machine-api
2424
----
2525

26-
. Get the `HostFirmwareComponents` resource for a particular host:
26+
. Get the `HostFirmwareComponents` resource for a particular host by running the following command:
2727
+
2828
[source,terminal]
2929
----

0 commit comments

Comments
 (0)