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 high availability devices. 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.
$ efactl status NAME STATUS ROLES AGE VERSION LABELS tpvm Ready master 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/master=true tpvm2 Ready master 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/master=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 Execute [success]
$ efa inventory device firmware-download show --fabric <fabric name> Don't execute 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 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>