Projects carried out in academic year 2024-25 are publicly available.
The list of projects for the current academic year are the following (TO DO):
CrownLabs is able to run applications using VMs or containers. This project aims at extending CrownLabs in order to allow the platform to create and manage other Kubernetes clusters, by means of technologies such as ClusterAPI and Kubevirt. This allows student to instantiate their own native Kubernetes cluster, where they have fully administrative access, which is set up by creating multiple VMs (with Kubevirt) and automatically installing the required software (e.g., K8s control plane on one node, workers on the others, the add the required components such as CNIs, etc).
This project would provide a more secure and isolate solution compared to the current "CrownLabs sandbox" that is used for this purposes.
The setup of a minimal GUI to visualize the current state of the clusters (https://github.com/Jont828/cluster-api-visualizer ) would be a nice addition to this project.
Optional feature: it would be helpful if the children Kubernetes clusters are integrated with the controller manager of the main cluster (i.e., CrownLabs) in order to provide external access to the cluster itself.
Technologies: Kubernetes, Go, Git (Javascript, React)
Students: XXX; Tutor: YYY
Integrate Liqo namespaces management logic in CrownLabs. Liqo is a project that allows to acquire resources in another cluster and give them visibility such as being local. This starts with a peering process with the "donor" cluster, and continues by selecting the namespace which needs to be offloaded on the remote cluster, in this case the namespace of the user. This project aims at creating a controller that can (1) automatically offload the namespace when a target node is selected for the pod deployment (and remove the offloading strategy when the pod is removed), and (2) can set the proper offloading policies if, in general, the user has the right to use remote resources (i.e., it requires an extension of the "tenant" attributes").
Integrate the management of "snapshot" images within CrownLabs.
Optimizing inactive cloud workloads, considering that there are several instances of persistent images that are powered off, but that consume space on disk. If a persistent image is not powered on from more than X months, the image should be deleted.
Introduce automatic vertical pod autoscaler in CrownLabs
Introduce the capability to run lambda functions (perhaps it's a big project, could be split in several sub-projects)