Design and Run Closed Control Loops in Kubernetes
Lupus is an open-source platform that enables you to design and run closed control loops within a Kubernetes cluster. The project focuses on managing telco and mobile network systems.
In robotics and automation, a control loop is a non-terminating process that regulates the state of a system. Kubernetes inherently implements the controller pattern. We leverage this by combining Kubernetes extensions such as Custom Resource Definitions (CRDs) and the Operator Pattern to create a reusable architecture that allows users to design and run any kind of closed control loop for system management.
Lupus can be used for: dynamic resource allocation, load balancing, energy efficiency management, self-healing networks, QoE optimization, network slicing management, anomaly detection and prevention, policy enforcement, regulatory compliance and much more...
In ICS terminology, Lupus acts as a control system, but for telco/mobile industry.
If you have a system that exposes interfaces (API) for observation and management actions, Lupus is the perfect platform to begin your automation journey.
All you need to do is:
- Install Lupus in your Kubernetes cluster
- Integrate your managed-system with Lupus by the development of Ingress and Egress Agents.
- Prepare your loop-workflow in a tool of your choice.
- Prepare external-elements of you loop if needed.
- Express the loop-workflow in Master CR YAML files and apply them in the cluster.
For more details, read our Getting started guide.
The direct inspiration for this project comes from the work of the ETSI committee, specifically "ENI - Experiential Networked Intelligence". The document "Overview of Prominent Control Loop Architectures" discusses various control loop architectures. The natural next step is to develop a way to design and run such loops. Kubernetes was chosen as the runtime due to its widespread adoption within the telco community.
This project is part of my Master's thesis, supervised by Dariusz Bursztynowski, Ph.D., Eng., during my second-degree ICT and Cybersecurity course at the Warsaw University of Technology.
The project is under active development, and contributions or feedback are welcome!

