Async deployment of manifests with kad #53
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
KAD right now loads each manifest, creates the container, waits for the creation to finish and starts the container (again waiting for the container to be brought up) before moving to the next one. This unnecessary since we don't care about start-up order.
This PR makes KAD truly async. Only sync part is the moment where the "/*.json" glob is resolved and then all found manifest are processed asynchronously using a join_all on the generated futures from the deploy() function.
This async behavior is even visible in the logs:
With this modification the initial deployment is much faster as slow-to-deploy containers are not bottle-necking the whole process