When a NVMe controller is present in the storage config, we now
configure nvme-stas so that the remote drives can be discovered and made
available using nvme-tcp at boot.
nvme: add NVMe controller info for NVMe disks, as an optional field
In the storage config, disks now support the optional "nvme_controller"
property.
This property holds the identifier of an existing "nvme_controller"
object (which is new).
a nvme_controller object has the following properties:
* id: a unique identifier that can be referenced in a disk.
* type: hardcoded to "nvme_controller"
* transport: usually "pcie", but we will look for the value "tcp"
* tcp_port: only if transport is set to "tcp" - will indicate the port
to connect to as an integer.
* tcp_addr: only if transport is set to "tcp" - will indicate the
IP address (could be IPv4 or IPv6) to connect to.
The presence of a "nvme_controller" object in the config will trigger
installation of nvme-cli and nvme-stas during curthooks, even if the
controller specifies transport = "pcie" or if the controller is actually
unused for the installation. For now, we will recommend not having
any "nvme_controller" objects in the config if we don't install to a
drive connected using NVMe over TCP.