So after working at improving the integration between pacemaker-cloud and openstack this is how it looks. Here is a simple session showing how to get HA services on an openstack cloud using pcloudsh. There are 2 VMs in the deployment and each has an httpd service running.
$ sudo nova-manage user admin asalkeld
$ sudo nova-manage network create default 10.0.0.0/24 1 256 --bridge=br0
$ sudo pcloudsh
pcloudsh# deployable_create ant openstack asalkeld
pcloudsh# assembly_create assy1-F16 F16 x86_64
pcloudsh# assembly_clone assy1-F16 assy2-F16
pcloudsh# deployable_assembly_add ant assy1-F16
pcloudsh# deployable_assembly_add ant assy2-F16
pcloudsh# assembly_resource_add webby01 httpd assy1-F16
pcloudsh# assembly_resource_add webby02 httpd assy2-F16
pcloudsh# deployable_start ant
pcloudsh#
Event: {'reason': 'All good', 'assembly': 'assy1-F16', 'state': 'running', 'deployable': 'ant'}
Event: {'reason': 'All good', 'assembly': 'assy2-F16', 'state': 'running', 'deployable': 'ant'}
Event: {'reason': 'Started OK', 'assembly': 'assy1-F16', 'state': 'running', 'service': 'httpd', 'deployable': 'ant'}
Event: {'reason': 'Started OK', 'assembly': 'assy2-F16', 'state': 'running', 'service': 'httpd', 'deployable': 'ant'}
Now I logged into assy2 and killed httpd
pcloudsh# Event: {'reason': 'monitor failed', 'assembly': 'assy2-F16', 'state': 'failed', 'service': 'httpd', 'deployable': 'ant'}
Event: {'reason': 'Started OK', 'assembly': 'assy2-F16', 'state': 'running', 'service': 'httpd', 'deployable': 'ant'}
Now I killed the assy1 vm
Event: {'reason': 'Not reachable', 'assembly': 'assy1-F16', 'state': 'failed', 'deployable': 'ant'}
pcloudsh# Event: {'reason': 'All good', 'assembly': 'assy1-F16', 'state': 'running', 'deployable': 'ant'}
pcloudsh# Event: {'reason': 'Started OK', 'assembly': 'assy1-F16', 'state': 'running', 'service': 'httpd', 'deployable': 'ant'}
pcloudsh# deployable_stop ant
pcloudsh#