Move provider registrations next to the code that implements the provider,
as we do with stages. This allows us to make the provider functions
private and only expose them through the registration.
To do this, we need to make the fields of the registration struct public,
which could allow the rest of Ignition to call directly through the
function pointers. To avoid this, we wrap the registration struct when
exposing it to the rest of Ignition, ensuring that accessors are used.
AzureStack is *like* but no quite the same as Azure. Rather than
conflating the two together, we should split them up.
Changes:
- azure.FetchConfig is a wrapper around FetchFromOvfDevice which takes
the an additional parameter of allowable filesystem types
- azurestack.FetchConfig calls azure.FetchFromOvfDevice with both UDF
and iso9660 filesystems
- azurestack is now a distinct platform target for ignition
These changes should give us run-way in case _other_ platform
differences are found, while minimizing copy/paste code duplication.
Signed-off-by: Ben Howard <ben.howard@redhat.com>