So it seems #47 does appear to work! However we've hit another substantial roadblock in that the request times out because for neutron this is a blocking call, and setting up networking equipment is a very long-winded process.
I've proposed this before elsewhere but formally:
Create a new controller to implement identity management
This leads to identity and provider network provisioning to be asynchronous
Cluster creation becomes fully asynchronous, so like cluster lifecycle managers, provisioning will yield until the identity becomes available
As a side effect, and why I've considered this before, cluster creation is now really quick, but rather than reporting a failure, we have to be mindful of asynchronous error conditions
If something happens during provider network provisioning, it would be useful to surface a trace ID that instigated the change, and have this made available via the resource metadata perhaps??
So it seems #47 does appear to work! However we've hit another substantial roadblock in that the request times out because for neutron this is a blocking call, and setting up networking equipment is a very long-winded process.
I've proposed this before elsewhere but formally: