Use this procedure to upgrade the firmware of SLX devices that host the high availability deployment on TPVMs.
This is the recommended method for upgrading the firmware of devices in a high-availability deployment. It describes how to upgrade the standby node, force a failover to change the active node to standby, and then upgrade the new standby node.
To upgrade firmware in all devices in the fabric, see Fabric-wide Firmware Download.
$ efactl status NAME STATUS ROLES AGE VERSION LABELS tpvm Ready primary 21h v1.18.6+k3s1 beta.kubernetes.io/arch=amd64, beta.kubernetes.io/os=linux,keepalived=active,kubernetes.io/arch=amd64, kubernetes.io/hostname=tpvm,kubernetes.io/os=linux,node-role.kubernetes.io/primary=true tpvm2 Ready primary 21h v1.18.6+k3s1 beta.kubernetes.io/arch=amd64, beta.kubernetes.io/os=linux,keepalived=standby,kubernetes.io/arch=amd64, kubernetes.io/hostname=tpvm2,kubernetes.io/os=linux,node-role.kubernetes.io/primary=true
efa inventory device firmware-download prepare add --ip <device IP> --firmware-host <IP of firmware download host> - -firmware-directory <path to target firmware build>
$ efa inventory device firmware-download execute --fabric <fabric name> Firmware Download [success]
$ efa inventory device firmware-download show --fabric <fabric name> Don't run other commands on these devices until firmware download is in progress --- Time Elapsed: 299.843244ms --
device# tpvm stop stop succeeds device# tpvm start start succeeds
$ efactl statusor
$ efa status
Note
If you do not follow the recommended steps and, instead, upgrade the firmware on the active node, then the EFA inventory becomes out of sync with the SLX device. The device remains in maintenance mode and the inventory indicates that the firmware download is in progress (even if it completed successfully). To resynchronize the inventory and the device, run the following commands to correct the device's firmware state in EFA and then to take the device out of maintenance mode.$ efa inventory device update --ip <device IP> $ efa inventory device setting update --maint-mode-enable No --ip <device IP>