This issue was found in https://review.opendev.org/#/c/710473/2
The CI job deploys TripleO standalone with Octavia and Ceph enabled just fine. The problem is when the job triggers the upgrade.
2020-02-29 16:57:00,514 p=110492 u=root | TASK [ceph-mon : include_tasks ceph_keys.yml] **********************************
2020-02-29 16:57:00,515 p=110492 u=root | Saturday 29 February 2020 16:57:00 +0000 (0:00:00.683) 0:11:51.286 *****
2020-02-29 16:57:00,682 p=110492 u=root | included: /usr/share/ceph-ansible/roles/ceph-mon/tasks/ceph_keys.yml for standalone
2020-02-29 16:57:00,813 p=110492 u=root | TASK [ceph-mon : waiting for the monitor(s) to form the quorum...] *************
2020-02-29 16:57:00,813 p=110492 u=root | Saturday 29 February 2020 16:57:00 +0000 (0:00:00.298) 0:11:51.585 *****
2020-02-29 17:47:01,885 p=110492 u=root | FAILED - RETRYING: waiting for the monitor(s) to form the quorum... (10 retries left).
https://zuul.opendev.org/t/openstack/build/125e42ce57724b67b368a3f8f15f4c21/log/logs/undercloud/home/zuul/standalone-ansible-T9r6F_/ceph-ansible/ceph_ansible_command.log#5597
More information: http://eavesdrop.openstack.org/irclogs/%23tripleo/%23tripleo.2020-03-12.log.html#t2020-03-12T12:35:01
The bug is that maybe the wrong playbook was triggered site-contianer.yml instead of rolling_update.yml.
Either way it's not possible to use rolling_update.yml to upgrade a 1-node ceph cluster so the job itself needs to redefined.
Only thing we can do to fix the bug is ensure the correct playbook is runwhen external-upgrade is triggered.