This is a known limitation and vRA is not directly supporting this multiple host selection via storage profiles, This is something in the pipeline for a future release but we do not have a timeline at present.
The issue is a known limitation.
There is a workaround available if you wish to leverage spread placement policy when datastores are not shared between hosts.
1. Create and use tags directly in vCenter in all the datastores that you need to be selected for provisioning. For example a tag 'vraProvisioning' . Use same tag for the datastores belonging to both clusters for example SiteA-Cluster-A and SiteA-Cluster-B.
2. Create a storage Policy from vCenter using Enable tag based placement rules, and select 'vraProvisioning' it will select all the datastores tagged as 'vraProvisioning' in vCenter,
3. Now allow one cycle of datacollection to happen.
4. Create a Storage profile for this region keeping Datastore/Cluster as blank, select storage policy created in step2, add 'vraProvisioning' as capability tag.
5. Add the tags to the Blueprint YAML
with
storage:
constraints:
tag : vraProvisioning
and machine level tag as env:cluster
This should enable vRealize Automation to select both the hosts SiteA-Cluster-A and SiteA-Cluster-B. and then proceed with Spread placement Policy,
Spread placement policy is not respected when datastores & datastore clusters are not shared between hosts.