I am trying to install Cloud Foundry on three vSphere clusters (one node each) using Bosh without having shared storage. The nodes use their own local storages.
If I use scale-to-one-az.yml file, I can install CF and it works. If I deploy to three AZ, I am getting an error:
Error: CPI error 'Bosh::Clouds::CloudError' with message 'No valid placement found for VM compute and storage requirement' in 'create_vm' CPI method (CPI request ID: 'cpi-717770')
Can I deploy Cloud Foundry with 3 AZ without shared storage?
Additional information:
- Cloud Foundry manifest_version: v13.23.0
 - Bosh version: version 6.3.1-c44e8a1d-2020-07-09T21:08:12Z
 - bosh cloud-config output:
 
azs:
- cloud_properties:
    datacenters:
    - clusters:
      - AZ01:
          datastore_pattern: node1-datastore
          persistent_datastore_pattern: node1-datastore
          resource_pool: Pool01
      name: DC
  name: z1
- cloud_properties:
    datacenters:
    - clusters:
      - AZ02:
          datastore_pattern: node2-datastore
          persistent_datastore_pattern: node2-datastore
          resource_pool: Pool02
      name: DC
  name: z2
- cloud_properties:
    datacenters:
    - clusters:
      - AZ03:
          datastore_pattern: node3-datastore
          persistent_datastore_pattern: node3-datastore
          resource_pool: Pool03
      name: DC
  name: z3
compilation:
  az: z1
  network: default
  reuse_compilation_vms: true
  vm_type: small-highmem
  workers: 6
disk_types:
- disk_size: 5120
  name: 5GB
- disk_size: 10240
  name: 10GB
- disk_size: 102400
  name: 100GB
- disk_size: 1024000
  name: 1000GB
networks:
- name: default
  subnets:
  - az: z1
    cloud_properties:
      name: LS-Cloud01
    dns:
    - 8.8.8.8
    gateway: x.x.10.1
    range: x.x.10.0/24
    reserved:
    - x.x.10.1-x.x.10.49
    static:
    - x.x.10.50 - x.x.10.60
  - az: z2
    cloud_properties:
      name: LS-Cloud02
    dns:
    - 8.8.8.8
    gateway: x.x.40.1
    range: x.x.40.0/24
    reserved:
    - x.x.40.1 - x.x.40.49
    static:
    - x.x.40.50 - x.x.40.60
  - az: z3
    cloud_properties:
      name: LS-Cloud03
    dns:
    - 8.8.8.8
    gateway: x.x.50.1
    range: x.x.50.0/24
    reserved:
    - x.x.50.1 - x.x.50.49
    static:
    - x.x.50.50 - x.x.50.60
vm_extensions:
- name: cf-router-network-properties
- name: cf-tcp-router-network-properties
- name: diego-ssh-proxy-network-properties
- cloud_properties:
    disk: 51200
  name: 50GB_ephemeral_disk
- cloud_properties:
    disk: 102400
  name: 100GB_ephemeral_disk
vm_types:
- cloud_properties:
    cpu: 2
    disk: 10240
    ram: 4096
  name: minimal
- cloud_properties:
    cpu: 6
    disk: 10240
    ram: 16384
  name: small
- cloud_properties:
    cpu: 6
    disk: 10240
    ram: 65536
  name: small-highmem
Succeeded
				
                        
yes, it can be done.
Storage configuration (node1-datastore, node2-datastore, node3-datastore) and information about the resource pools (Pool01, Pool02, Pool03) and AZ (AZ01, AZ02, AZ03)need to be provided to bosh. My cpi.yml (https://github.com/cloudfoundry/bosh-deployment/blob/master/vsphere/cpi.yml) can be found below:
where vcenter_ds: node1-datastore|node2-datastore|node3-datastore
bosh cloud-config looks following: