According to the logs Octavia fails in `setup_hm_port()` which on the condition `@reactive.when('identity-service.available')`. Also we know from the previous keystone fix [0] that the issue was keystone setting `service_password` too early on the `identity-service` interface, thus signaling application readiness too early. The implementation of the interface [1] however shows that `service_password` is taken into account in `identity-service.available.auth` and not in `identity-service.available`. So either:
a. Octavia is waiting on the wrong condition, or
b. the definition of `identity-service.available` should be fixed to wait for `service_password`.
We prefer `b` as waiting for `{relation_name}.available` for application readiness is a widely used pattern and we would rather not have a special case for keystone.
We found the new culprit:
According to the logs Octavia fails in `setup_hm_port()` which on the condition `@reactive. when('identity- service. available' )`. Also we know from the previous keystone fix [0] that the issue was keystone setting `service_password` too early on the `identity-service` interface, thus signaling application readiness too early. The implementation of the interface [1] however shows that `service_password` is taken into account in `identity- service. available. auth` and not in `identity- service. available` . So either:
a. Octavia is waiting on the wrong condition, or service. available` should be fixed to wait for `service_password`.
b. the definition of `identity-
We prefer `b` as waiting for `{relation_ name}.available ` for application readiness is a widely used pattern and we would rather not have a special case for keystone.
0: https:/ /review. opendev. org/729781 /github. com/openstack/ charm-interface -keystone/ blob/master/ requires. py#L91
1: https:/