You are correct in your assessment. According to the official Harvester documentation, Harvester uses cloud-init with the NoCloud datasource for its installation/configuration mechanism (via the Elemental toolkit). ConfigDrive, which is the cloud-init datasource that Metal3 (Bare Metal Operator) uses to deliver configuration, is not officially supported by Harvester.
What Harvester supports for automated installation:
- PXE boot installation with a Harvester config file passed via
harvester.install.config_url -
- Cloud-init configuration through the NoCloud datasource
-
- Automated provisioning via the Harvester Install ISO with a YAML configuration file
- The Metal3 / ConfigDrive incompatibility:
- Metal3’s
BareMetalHostresource delivers configuration via ConfigDrive (an ISO attached as a virtual CD-ROM that the cloud-init agent reads). Since Harvester only supports NoCloud, Metal3’s native configuration delivery mechanism won’t work out of the box.
- Potential workarounds to explore:
-
- Use Metal3 for PXE booting the Harvester ISO, but provide the Harvester config file via HTTP URL (
harvester.install.config_url) instead of ConfigDrive. -
- Provision Harvester nodes through PXE boot, then import the cluster into Rancher.
- This appears to be a gap in the current Harvester feature set. If this is important to your use case, it would be worth opening a feature request on the Harvester GitHub repository.
- Use Metal3 for PXE booting the Harvester ISO, but provide the Harvester config file via HTTP URL (
- Reference: Official Harvester docs > Install > PXE Boot Install