The Nublado controller is a FastAPI application with three basic functions:
Prepull images to every Kubernetes node.
Manage user lab pods and their supporting environment.
Manage user file server pods and their supporting environment.
Internally, the code structure uses the handler-services-storage code structure documented in SQR-072.
To try to keep the size of the major services, such as the user lab manager, manageable, there are several layers of services that coordinate.
This diagram attempts to provide a guide to the overall code structure.
The Kubernetes storage layer is further subdivided into per-resource storage layers, which are not shown in this graph to try to keep the graph more concise.