If you are trying to set up a new DKP 2.X preprovisioned cluster, you may encounter a scenario where the first control plane node is stuck being provisioned.
Checking the logs for the cappp-controller-manager logs in the bootstrap cluster, you might see messages like the following:
20XX-XX-XXTXX:XX:XX.XXXZ ERROR controller.preprovisionedmachine Reconciler error {"reconciler group": "infrastructure.cluster.konvoy.d2iq.io", "reconciler kind": "PreprovisionedMachine", "name": "cluster-control-plane-xxxxx", "namespace": "default", "error": "no available hosts"...
One possible cause for this is IP reuse. Open the preprovisioned_inventory.yaml file that you had created for this cluster and check the "address" fields to make sure that no addresses are being assigned to more than one host. Make sure that all control plane and worker node addresses are unique, and correspond to hosts that you have preprovisioned.
Compare it to the output of "kubectl get preprovisionedmachines -o yaml".
There may have been a typo during setup that resulted in an address being generated incorrectly in this yaml file.