---
- hosts:
    - ceph-mon
    - ceph-osd
    - ceph-rgw
  roles:
    - { role: ceph,
        tags: ceph,
        when: enable_ceph | bool }

- hosts:
    - cinder-api
    - glance-api
    - haproxy
    - keystone
    - mariadb
    - murano-api
    - neutron-server
    - nova-api
    - rabbitmq
    - swift-proxy-server
    - heat-api
    - murano-api
  roles:
    - { role: haproxy,
        tags: haproxy,
        when: enable_haproxy | bool }

- hosts: memcached
  roles:
    - { role: memcached,
        tags: [memcache, memcached],
        when: enable_memcached | bool }

- hosts: mariadb
  roles:
    - { role: mariadb,
        tags: mariadb,
        when: enable_mariadb | bool }

- hosts: rabbitmq
  roles:
    - { role: rabbitmq,
        tags: rabbitmq,
        when: enable_rabbitmq | bool }

- hosts: keystone
  roles:
    - { role: keystone,
        tags: keystone,
        when: enable_keystone | bool }

- hosts:
    - swift-account-server
    - swift-container-server
    - swift-object-server
    - swift-proxy-server
    - rabbitmq
  roles:
    - { role: swift,
        tags: swift,
        when: enable_swift | bool }

- hosts:
    - ceph-mon
    - glance-api
    - glance-registry
    - rabbitmq
  roles:
    - { role: glance,
        tags: glance,
        when: enable_glance | bool }

- hosts:
    - ceph-mon
    - compute
    - glance-api
    - nova-api
    - nova-conductor
    - nova-consoleauth
    - nova-novncproxy
    - nova-scheduler
    - rabbitmq
  roles:
    - { role: nova,
        tags: nova,
        when: enable_nova | bool }

- hosts:
    - compute
    - neutron-agents
    - neutron-server
    - rabbitmq
  roles:
    - { role: neutron,
        tags: neutron,
        when: enable_neutron | bool }

- hosts:
    - ceph-mon
    - cinder-api
    - cinder-backup
    - cinder-scheduler
    - cinder-volume
    - rabbitmq
  roles:
    - { role: cinder,
        tags: cinder,
        when: enable_cinder | bool }

- hosts:
    - heat-api
    - heat-api-cfn
    - heat-engine
    - rabbitmq
  roles:
    - { role: heat,
        tags: heat,
        when: enable_heat | bool }

- hosts: horizon
  roles:
    - { role: horizon,
        tags: horizon,
        when: enable_horizon | bool }

- hosts:
    - murano-api
    - murano-engine
    - rabbitmq
  roles:
    - { role: murano,
        tags: murano,
        when: enable_murano | bool }

- hosts:
    - ironic-api
    - ironic-conductor
    - ironic-discoverd
    - ironic-pxe
    - rabbitmq
  roles:
    - { role: ironic,
        tags: ironic,
        when: enable_ironic | bool }

- hosts:
    - magnum-api
    - magnum-conductor
    - rabbitmq
  roles:
    - { role: magnum,
        tags: magnum,
        when: enable_magnum | bool }