KubeOne on vSphere vapp

How exactly must vSphere be prepared (e.g. using the Kubeone example does not work because it tries to use “vapp” to configure the new VM which is not possible without some preparation in vSphere. Can you point to some documentation?

I’m really confused, didn’t know that vapp properties require any preparations. But anyway, the point of using “vapp” properties is to provide some initial “user-data” to the VMs.

resource "vsphere_virtual_machine" "control_plane" {
...
  vapp {
    properties = {
      hostname    = "${var.cluster_name}-cp-${count.index + 1}"
      public-keys = file(var.ssh_public_key_file)
    }
  }
}

vapp is not required, and if you could “customize” (i.e. settings uniq hostnames and providing public ssh key) your VMs using other facilities, that’s totally fine.

On out vSphere installation I was able to make it work only by using vapp, I may be wrong, but it worked for us.