In order to handle machines coming and going in the state file, dynamic enumeration of MaaS' state via data elements is required for all resources to be configured based on what MaaS knows about at the time of execution - meta-programming for inconsistent state of back-end of sorts. The following is done in openstack but can be achieved with vars instead of resource references to the ostack instances:
which then allows us to use the attributes of data.maas_network_interface_physical.metal-1 to configure resources using the attributes extracted for bond building or what-not.
The same pattern can't be followed when defining storage because there is no data element for block storage devices. Furthermore, the analog to a bond setup on two NICs would be an MDRAID or ZFS mirror (IIRC the latter isn't something MaaS does without custom Curtin config) which don't appear to be configurable through the provider at all.
In order to make this possible, requesting implementation of the following:
data element for block devices to permit dynamic composition through iterators
support for the storage types which can be configured through UI/pre-made CLI endpoints (LVM, MDRAID, basic ZFS, etc).
ideally, at some point, support for custom Curtin configs to do things like advanced ZFS setups
In order to handle machines coming and going in the state file, dynamic enumeration of MaaS' state via
data
elements is required for allresource
s to be configured based on what MaaS knows about at the time of execution - meta-programming for inconsistent state of back-end of sorts. The following is done in openstack but can be achieved withvar
s instead ofresource
references to the ostack instances:which then allows us to use the attributes of
data.maas_network_interface_physical.metal-1
to configureresource
s using the attributes extracted for bond building or what-not.The same pattern can't be followed when defining storage because there is no
data
element for block storage devices. Furthermore, the analog to a bond setup on two NICs would be an MDRAID or ZFS mirror (IIRC the latter isn't something MaaS does without custom Curtin config) which don't appear to be configurable through the provider at all.In order to make this possible, requesting implementation of the following:
data
element for block devices to permit dynamic composition through iterators