This PR works out the issues we've been having with the Orion sidecar as documented by #28.
We can now run Orion as a mesh service with an Istio sidecar. Notice our (test) mesh configuration doesn't include any
Orion/MongoDB initialisation---DB indexes, etc.
Robust handling of start-up race conditions---see #28 about it.
(1) is quite hard to do with an Orion init container as we do in Orchestra since we've got the sidecar in between with its own init container. Doing it without an Orion init container is possible but then we'll have to deal with race conditions.
We've introduced a 10 second delay before starting Orion to make it less likely to get race conditions at start-up---yep, poor's man approach to concurrency. So we can't claim we've got a robust solution for that.
We should make (1) and (2) visible to mesh admins so that they can roll out their own solution, e.g. readiness/liveness probes to make Orion bounce back after a startup failure---see #28 about it.
This PR works out the issues we've been having with the Orion sidecar as documented by #28. We can now run Orion as a mesh service with an Istio sidecar. Notice our (test) mesh configuration doesn't include any
(1) is quite hard to do with an Orion init container as we do in Orchestra since we've got the sidecar in between with its own init container. Doing it without an Orion init container is possible but then we'll have to deal with race conditions.
We've introduced a 10 second delay before starting Orion to make it less likely to get race conditions at start-up---yep, poor's man approach to concurrency. So we can't claim we've got a robust solution for that.
We should make (1) and (2) visible to mesh admins so that they can roll out their own solution, e.g. readiness/liveness probes to make Orion bounce back after a startup failure---see #28 about it.