Skip to content

Commit 6f777a1

Browse files
brendan-daly-red-hatopenshift-cherrypick-robot
authored andcommitted
OSDOCS-16223:extending Metal3 firmware updates
1 parent 195c19a commit 6f777a1

File tree

5 files changed

+213
-6
lines changed

5 files changed

+213
-6
lines changed

installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ include::modules/bmo-getting-the-hostfirmwarecomponents-resource.adoc[leveloffse
9090
include::modules/bmo-editing-the-hostfirmwarecomponents-resource-of-a-provisioned-host.adoc[leveloffset=+2]
9191
// Patching the HostFirmawareComponents resource
9292
include::modules/bmo-performing-a-live-update-to-the-hostfirmwarecomponents-resource.adoc[leveloffset=+2]
93+
// Identifying the NICs `HostFirmwareComponents` resources you can update
94+
include::modules/bmo-getting-the-hostfirmwarecomponents-resource_nic.adoc[leveloffset=+2]
9395
// About the HostUpdatePolicy resource
9496
include::modules/bmo-about-the-hostupdatepolicy-resource.adoc[leveloffset=+2]
9597
// Setting the HostUpdatePolicy resource

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,21 @@
66
[id="bmo-about-the-hostfirmwarecomponents-resource_{context}"]
77
= About the HostFirmwareComponents resource
88

9-
Metal^3^ provides the `HostFirmwareComponents` resource, which describes BIOS and baseboard management controller (BMC) firmware versions. The `HostFirmwareComponents` resource contains two sections:
9+
Metal^3^ provides the `HostFirmwareComponents` resource, which describes BIOS, baseboard management controller (BMC), and network interface controllers (NICs).
10+
11+
To update NIC host firmware components, the server must support Redfish and must permit you to use Redfish to update NIC firmware. You can use Metal^3^ to update NIC host firmware components for the Intel Ethernet 800 Series (`ice` driver) and the NVIDIA Mellanox ConnectX-6 (CX6) and ConnectX-7 (CX7) (`mlx_5` driver). The updates are validated on Dell hardware. The following list outlines important considerations before you update the NICs:
12+
13+
* If you have more than one network adapter with the same type of NIC, for example, Intel Ethernet 800 Series, when you update one NIC the update might be applied to multiple NICs. Redfish identifies all components that can benefit from the update and then applies the image to all these components.
14+
* You cannot necessarily update a listed network adapter. A machine might use Redfish to display their NIC and firmware information, but prevent you from updating the adapter through Redfish. For more information about checking if you can update a network adapter, see "Identifying the NICs HostFirmwareComponents resources you can update".
15+
16+
The `HostFirmwareComponents` resource contains two sections:
1017

1118
. The `HostFirmwareComponents` spec
1219
. The `HostFirmwareComponents` status
1320

1421
== HostFirmwareComponents spec
1522

16-
The `spec` section of the `HostFirmwareComponents` resource defines the desired state of the host's BIOS and BMC versions.
23+
The `spec` section of the `HostFirmwareComponents` resource defines the desired state of the BIOS and BMC versions of the host, and the NIC firmware components of the host if the information is available by using Redfish.
1724

1825
.HostFirmwareComponents spec
1926
[options="header"]
@@ -28,15 +35,15 @@ updates:
2835
----
2936
a| The `updates` configuration setting contains the components to update. The fields are:
3037

31-
* `component`: The name of the component. The valid settings are `bios` or `bmc`.
38+
* `component`: The name of the component. The valid settings are `bios`, `bmc`, or `nic:<ID>`.
3239

3340
* `url`: The URL to the component's firmware specification and version.
3441
|====
3542

3643

3744
== HostFirmwareComponents status
3845

39-
The `status` section of the `HostFirmwareComponents` resource returns the current status of the host's BIOS and BMC versions.
46+
The `status` section of the `HostFirmwareComponents` resource returns the current status of the BIOS and BMC versions of the host, and the NIC firmware components of the host if the information is available by using Redfish.
4047

4148
.HostFirmwareComponents status
4249
[options="header"]
@@ -54,7 +61,7 @@ components:
5461
----
5562
a| The `components` section contains the status of the components. The fields are:
5663

57-
* `component`: The name of the firmware component. It returns `bios` or `bmc`.
64+
* `component`: The name of the firmware component. It returns `bios`, `bmc`, `nic:<ID1>`, or `nic:<ID2>`.
5865

5966
* `initialVersion`: The initial firmware version of the component. Ironic retrieves this information when creating the `BareMetalHost` resource. You cannot change it.
6067

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ status:
6363
- component: bmc
6464
currentVersion: "1.00"
6565
initialVersion: "1.00"
66+
- component: nic:<ID1>
67+
currentVersion: 0.10.0
68+
initialVersion: 0.10.0
69+
- component: nic:<ID2>
70+
currentVersion: 1.8.1
71+
initialVersion: 1.8.1
6672
conditions:
6773
- lastTransitionTime: "2024-04-25T20:32:06Z"
6874
message: ""
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
// This is included in the following assemblies:
2+
//
3+
// * installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="bmo-getting-the-hostfirmwarecomponents-resource_nic_{context}"]
7+
= Identifying the NICs HostFirmwareComponents resources you can update
8+
9+
You can use the Redfish `NetworkAdapters` resource to identify network interface controllers (NICs) that were added to the `HostFirmwareComponents` custom resource (CR). The NIC is displayed in the CR with the prefix `nic:` followed by the network adapter ID of the resource. For example, `nic:AD007`.
10+
11+
.Procedure
12+
13+
. Get the detailed list of `HostFirmwareComponents` NIC resources by running the following command:
14+
+
15+
[source,terminal]
16+
----
17+
$ curl -ksu “$USER:$PASS” https://<BMC>/redfish/v1/Chassis/<SystemID>/NetworkAdapters | jq .
18+
----
19+
The `<SystemID>` is based on the value that you set for `bmh` in the `spec.bmc.address`.
20+
+
21+
.Example output
22+
[source,yaml]
23+
----
24+
{
25+
"@odata.context": "/redfish/v1/$metadata#NetworkAdapterCollection.NetworkAdapterCollection",
26+
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters",
27+
"@odata.type": "#NetworkAdapterCollection.NetworkAdapterCollection",
28+
"Description": "Collection Of Network Adapter",
29+
"Members": [
30+
{
31+
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1"
32+
},
33+
{
34+
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.3"
35+
}
36+
],
37+
38+
"Name": "Network Adapter Collection"
39+
}
40+
----
41+
42+
. Identify the corresponding network adapter in the firmware inventory resource, as the network adapter does not indicate if you can update firmware with Redfish, by running the following command:
43+
+
44+
[source,terminal]
45+
----
46+
$ curl -ksu “$USER:$PASS” https://<BMC>/redfish/v1/UpdateService/FirmwareInventory | jq .
47+
----
48+
+
49+
.Example output
50+
[source,yaml]
51+
----
52+
{
53+
"@odata.context": "/redfish/v1/$metadata#SoftwareInventoryCollection.SoftwareInventoryCollection",
54+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
55+
"@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",
56+
"Description": "Collection of Firmware Inventory",
57+
"Members": [
58+
{
59+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-2-1"
60+
},
61+
{
62+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-3-1"
63+
},
64+
{
65+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-4-1"
66+
},
67+
{
68+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102378-22.0.9__NIC.Integrated.1-1-1"
69+
},
70+
{
71+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-104480-14.31.22.50__NIC.Slot.3-1-1"
72+
},
73+
{
74+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-104480-14.31.22.50__NIC.Slot.3-2-1"
75+
},
76+
{
77+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-102303-22.0.9__NIC.Integrated.1-2-1"
78+
},
79+
{
80+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-102303-22.0.9__NIC.Integrated.1-3-1"
81+
},
82+
{
83+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-102303-22.0.9__NIC.Integrated.1-4-1"
84+
},
85+
{
86+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-102378-22.0.9__NIC.Integrated.1-1-1"
87+
},
88+
{
89+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-104480-14.31.22.50__NIC.Slot.3-1-1"
90+
},
91+
{
92+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-104480-14.31.22.50__NIC.Slot.3-2-1"
93+
},
94+
{
95+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-102303-20.0.17__NIC.Integrated.1-2-1"
96+
},
97+
{
98+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-102303-20.0.17__NIC.Integrated.1-3-1"
99+
},
100+
{
101+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-102303-20.0.17__NIC.Integrated.1-4-1"
102+
},
103+
{
104+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-102378-20.0.17__NIC.Integrated.1-1-1"
105+
},
106+
{
107+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-104480-14.24.80.00__NIC.Slot.3-1-1"
108+
},
109+
{
110+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-104480-14.24.80.00__NIC.Slot.3-2-1"
111+
}
112+
],
113+
114+
"Name": "Firmware Inventory Collection"
115+
}
116+
----
117+
118+
. Check if the parameter is set to `true` by running the following command:
119+
+
120+
[source,terminal]
121+
----
122+
$ curl -ksu "$USER:$PASS" https://<BMC>/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-2-1 | jq .
123+
----
124+
+
125+
.Example output
126+
[source,yaml]
127+
----
128+
{
129+
"@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory",
130+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-2-1",
131+
"@odata.type": "#SoftwareInventory.v1_9_0.SoftwareInventory",
132+
"Description": "Represents Firmware Inventory",
133+
"Id": "Current-102303-22.0.9__NIC.Integrated.1-2-1",
134+
"Name": "Intel(R) Ethernet 10G X710 rNDC - E4:43:4B:4B:60:B1",
135+
"Oem": {
136+
"Dell": {
137+
"@odata.type": "#DellOem.v1_3_0.DellOemResources",
138+
"DellSoftwareInventory": {
139+
"@odata.context": "/redfish/v1/$metadata#DellSoftwareInventory.DellSoftwareInventory",
140+
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-102303-22.0.9__NIC.Integrated.1-2-1/Oem/Dell/DellSoftwareInventory/DCIM:CURRENT_0x23_701__NIC.Integrated.1-2-1",
141+
"@odata.type": "#DellSoftwareInventory.v1_2_0.DellSoftwareInventory",
142+
"BuildNumber": 0,
143+
"Classifications": [
144+
"Firmware"
145+
],
146+
147+
"ComponentID": "102303",
148+
"ComponentType": "FRMW",
149+
"Description": "The DellSoftwareInventory resource is a representation of an available device firmware in the managed system.",
150+
"DeviceID": "1572",
151+
"ElementName": "Intel(R) Ethernet 10G X710 rNDC - E4:43:4B:4B:60:B1",
152+
"HashValue": "1158cfbfdf6cb387bc0806999b28b83892cfaf1307b466abd6546ff8e5ea1459",
153+
"Id": "DCIM:CURRENT_0x23_701__NIC.Integrated.1-2-1",
154+
"IdentityInfoType": [
155+
"OrgID:ComponentType:VendorID:DeviceID:SubVendorID:SubDeviceID"
156+
],
157+
158+
"IdentityInfoValue": [
159+
"DCIM:firmware:8086:1572:1028:0000"
160+
],
161+
162+
"InstallationDate": "NA",
163+
"IsEntity": true,
164+
"MajorVersion": 22,
165+
"MinorVersion": 0,
166+
"Name": "DellSoftwareInventory",
167+
"PLDMCapabilitiesDuringUpdate": "0x00000000",
168+
"PLDMFDPCapabilitiesDuringUpdate": "0x00000000",
169+
"RevisionNumber": 9,
170+
"RevisionString": null,
171+
"SidebandUpdateCapable": false,
172+
"Status": "AvailableForInstallation",
173+
"SubDeviceID": "0000",
174+
"SubVendorID": "1028",
175+
"VendorID": "8086",
176+
"impactsTPMmeasurements": true
177+
}
178+
}
179+
},
180+
"ReleaseDate": "2023-03-03T00:00:00Z",
181+
"SoftwareId": "102303",
182+
"Status": {
183+
"Health": "OK",
184+
"State": "Enabled"
185+
},
186+
"Updateable": true,
187+
"Version": "22.0.9"
188+
}
189+
----
190+
* `Updateable`: Indicates the value the parameter is set to.
191+
192+
. Where the `Updateable` parameter is set to `true`, you can use Redfish to update the network adapter.

storage/container_storage_interface/persistent-storage-csi-google-cloud-file.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ To create CSI-provisioned PVs that mount to {gcp-short} Filestore Storage assets
2020

2121
* The _{gcp-short} Filestore CSI driver_ enables you to create and mount {gcp-short} Filestore PVs.
2222

23-
{product-title} {gcp-short} Filestore supports Workload Identity. This allows users to access Google Cloud resources using federated identities instead of a service account key. {gcp-wid-short} must be enabled globally during installation, and then configured for the {gcp-short} Filestore CSI Driver Operator. For more information, see xref:../../storage/container_storage_interface/persistent-storage-csi-google-cloud-file.adoc#installing-the-gcp-filestore-csi-driver-operator[Installing the {gcp-short} Filestore CSI Driver Operator].
23+
{product-title} {gcp-short} Filestore supports Workload Identity. This allows users to access Google Cloud resources using federated identities instead of a service account key. {gcp-wid-short} must be enabled globally during installation, and then configured for the {gcp-short} Filestore CSI Driver Operator.
2424

2525
include::modules/persistent-storage-csi-about.adoc[leveloffset=+1]
2626

0 commit comments

Comments
 (0)