When .config.caFile is specified in the values, it gets rendered in the resulting ConfigMap as:
ca-file: {{ $config.caFile }}
This results in the controller complaining about the vCenter certificate.
The correct rendering is:
caFile: {{ $config.caFile }}
This results in the controller trusting the vCenter certificate signed by one of the provided CAs.
"ca-file" is what one would use in a .ini-formatted file. e.g.:
[VirtualCenter "10.0.0.1"]
ca-file = "/path/to/my/CA/file"
ref: https://cloud-provider-vsphere.sigs.k8s.io/cloud_config
The .config.caFile option is broken as currently implemented.
This is a one-line fix.