Allow injecting custom files to the cloud-init template. This is preliminary work required for the upcoming vsphere cluster template.
As a side-effect, this PR also refactors a bit of the testing for "common" configuration fields across control plane init, control plane join and worker join nodes. This is to ensure that tests for the same functionality are close to each other and updated together.
Notes
Add a separate type for the API cloud init config files, we don't want to mix the public API with the internal cloudinit.File type.
Summary
Allow injecting custom files to the cloud-init template. This is preliminary work required for the upcoming vsphere cluster template.
As a side-effect, this PR also refactors a bit of the testing for "common" configuration fields across control plane init, control plane join and worker join nodes. This is to ensure that tests for the same functionality are close to each other and updated together.
Notes
Add a separate type for the API cloud init config files, we don't want to mix the public API with the internal cloudinit.File type.