During upgrades from 13 to 14 there is a prepare step and then an external upgrade step. If you used director to deploy Ceph, then these two steps must be run within 24 hours of each other. This is because the prepare step generates a pair of GET/POST URLs to store the ceph-ansible fetch directory but those URLs expire after 24 hours. Both URLs must not have expired during Ceph upgrade. If 24 hours passes, then you may re-run the prepare step to generate fresh URLs.
Please add a note to the documentation covering upgrades from 13 to 14 explaining the above. The prepare step command looks like this:
$ openstack overcloud upgrade prepare \
-e /home/stack/templates/overcloud_images.yaml \
-e <ENVIRONMENT FILE>
The external upgrade step for Ceph looks like this:
$ `openstack overcloud external-upgrade run --tags ceph ...`
If more than 24 hours have passed after running the first command and before running the second command, then the first command must be re-run so that the second command may succeed. Otherwise during upgrade you will see an error like: `Received HTTP: 401 when attempting to GET from ...`