osrd
osrd copied to clipboard
Add a custom core-controller to manage specialized core instances
Description and goal
Develop the core-controller, which monitor requests from editoast in queues and orchestrates the startup of core instances as well as all the surrounding elements.
Acceptance criteria
- [X] Observe the REST API of RabbitMQ to schedule pods
- [X] Local Docker Support: Integrate the core-controller with the Docker API to control the lifecycle of the containers.
- [X] Kubernetes Support in Production: Develop the integration between the core-controller and the Kubernetes API to manage the lifecycle of the core-controller.
- [X] Using Redis to Manage the Controller's State: use Redis to store the state of the Core Controller. This is to ensure that the Core Controller can be horizontally scalable.
- [X] API Implementation: Implement an API through which either the gateway directly, or editoast, can inquire about the state of the different cores.