Enable autopy-server to replicate across nodes #1317
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.
Currently the autopy-server stores the autograder files on the local
file-system via flask-admin. In Kubernetes, the file-system is managed
via a persistent volume claim. However, the volume can only attach to a
single node which means that all autopy-server pods have to be scheduled
to the same node which limits fault tolerance and scalability.
This change switches the autopy-server to use the new direct Azure Blob
Storage integration for flask-admin which stores the autograder files in
a non-local storage. As such, we can remove the persistent volume claim
and autopy-server pods can now be scheduled to arbitrary nodes.
This issue was found by @tmbgreaves.