Skip to content
View mdalgitsis's full-sized avatar

Block or report mdalgitsis

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mdalgitsis/README.md

Michail Dalgitsis

Telco and edge-cloud engineer working where mobile networks meet cloud-native infrastructure — 5G cores and RAN, Kubernetes orchestration, MEC, and the APIs that let one drive the other. Currently at Nearby Computing in Barcelona; previously at Vicomtech in San Sebastián and, before that, CTTC in Castelldefels.

Most of my work is the unglamorous middle layer: packaging network functions so they actually deploy, making infrastructure observable down to the radio, and designing the interfaces that let an orchestrator act on what it sees. A recurring theme is failures that are silent — a CAPIF that disables itself and answers normally, a load balancer that announces from no node and logs nothing, a GPU that never reaches the guest. Most of what I build asserts rather than assumes.

On the research side I publish on network slice federation and cloud-native service orchestration for 5G and 6G, and I am writing a PhD thesis in the same area.

Work

Grouped by what the problem is, rather than by language.

Orchestration and federation — making independently-run platforms cooperate

  • sliceweaver — Per-slice agents that negotiate bandwidth through Kubernetes Custom Resources. Two Go operators, a per-slice agent and a 5G simulator, with the CRs as the only interface: every decision is an object you can read, diff and replay, and any Kubernetes-aware orchestrator can drive it.
  • closed-loop-k8s-scaling — Where that idea started: read a workload's CPU out of Thanos, decide, and write desired state into a Kubernetes object an orchestrator watches. Early work, and the README says what it got wrong — a Secret has no schema and no status to read back, so the loop never quite closes. sliceweaver is the same loop done properly.
  • slice-ambr-closed-loop — A loop over 5G slice bitrate ceilings: watch the acceptance ratio, and when a fixed split of the budget starts turning demand away, reallocate it. It re-reads what the core is actually enforcing every iteration rather than trusting its own last write, and deciding is kept separate from actuating, so a bad policy produces bad metrics rather than a misconfigured core. The allocation policy sits behind a seven-member interface; the learned one that produced the published results is a colleague's and is not included, so a proportional-fair baseline ships in its place. One of the use cases in the IEEE Communications Standards Magazine paper.
  • ipsec-interconnect-operator — A Kubernetes operator configuring IPsec tunnels between operator platforms through a vendor-neutral API with pluggable southbound drivers (strongSwan, VyOS). The tunnel is infrastructure with its own lifecycle, so it deliberately knows nothing about whatever consumes it.
  • edge-cloud-dns-testbed — Three Kubernetes sites, each claiming its own address and publishing its own DNS, so a service can migrate between edge and cloud and the name follows it. The infrastructure behind an IEEE ICNP 2025 paper; Ansible, at the ansible-lint production profile.
  • cell-aware-service-migration — An edge application that follows a moving vehicle between cells. A 5G core already knows which gNB a subscriber is camped on; subscribe to its session events and that is enough to re-pin the workload to the edge node serving the new cell — state endpoint included, or the migrated pod serves the previous site's data. Behind a BalkanCom 2025 paper.
  • ran-aware-edge-autoscaling — Scaling edge applications on what the mobile network already knows instead of on CPU, using both halves of it: the core's session data says whether an application belongs at an edge node at all, and the RAN's aggregated cell traffic says how big it should be. Traffic alone cannot tell you to undeploy, because idle users and no users look identical. CPU only tells you the load already arrived. The decision is a pure function, so it reads against the paper's algorithm line by line and every branch is tested without a cluster. Behind a EuCNC/6G Summit 2025 paper.
  • edge-placement-notifier — An orchestrator knows when it moves an edge application to another site; the client does not, and the client is the one that has to reconnect. A Kubernetes operator that publishes one Kafka event when the serving site changes. Exactly-once is the whole problem — a reconcile loop re-runs for a resync or a restart, so what was last announced lives in status rather than in memory, and a restarted operator does not tell every client to reconnect again.
  • openop-federation-lab — Standing up two independent operator platforms and federating them: cross-domain OAuth2, two Keycloak realms, and the investigation notes from making it actually work.
  • BIND5G — Network as a Service API specification, cross-site Prometheus federation with Thanos, and the WireGuard VPN that federation runs over.

5G core, RAN and network exposure

  • open5gs-k8s — A complete Open5GS 5G Standalone core on Kubernetes with a relocatable UPF: one flag moves the user plane to edge nodes while the control plane stays central, which is the topology that makes edge offload measurable.
  • nef-capif-testbed — A 3GPP NEF against a simulated core with ETSI OpenCAPIF doing real API authorisation, including why a half-configured CAPIF is indistinguishable from a working open one.
  • mec-edge-site — A MEC site whose observability reaches past containers into the radio: per-UE throughput, MCS and SNR from a live Amarisoft RAN landing in the same Prometheus as pod metrics.

Agents and LLM systems

  • agent-lab — Learning LLM agent development in Go, one concept at a time. Five self-contained stages from a single agent to agent-to-agent communication with a registry, memory and MCP tools. Kept as written, including the stage where four services collapse back into one because the distribution was not paying for itself.

Platform and infrastructure

  • rke2-kubernetes-cluster — Ansible for HA RKE2: embedded-etcd control plane, air-gapped installs, and runbooks for upgrade, backup, restore and rotation. Passes ansible-lint at the production profile.
  • kubevirt-gpu-passthrough — Running VMs with a physically passed-through GPU on Kubernetes, including a Windows guest over RDP. Every link in the host-to-guest chain fails silently, so each one is asserted rather than assumed.

Publications

16 peer-reviewed publications, 8 as first author — network slicing, slice federation, cloud-native orchestration and edge-cloud service migration for 5G and 6G. The complete list with DOIs is in PUBLICATIONS.md. A selection:

  • "6G-Core-in-the-Loop: Enabling Service and Network Orchestration in a Cloud-Native Ecosystem," IEEE Communications Standards Magazine, vol. 10, pp. 72–79, 2026. doi

  • "Cloud-Native Orchestration Framework for Network Slice Federation Across Administrative Domains in 5G/6G Mobile Networks," IEEE Transactions on Vehicular Technology, vol. 73, pp. 9306–9319, 2024. doi

  • "Coupling Orchestration and DNS for Seamless Service Migration in the Edge–Cloud Continuum," IEEE ICNP 2025. doi

  • "Exploiting 6G RAN and Core Network Information for Intelligent Edge-Cloud Service Orchestration," EuCNC/6G Summit 2025, pp. 369–374. doi

  • "NSFaaS: Network Slice Federation as a Service in Cloud-Native 5G and Beyond Mobile Networks," IEEE NFV-SDN 2023, pp. 59–64. doi

  • "SDN-Based Resource Management for Optical-Wireless Fronthaul," in Enabling 6G Mobile Networks, Springer, pp. 467–500, 2021. doi

Recognition

🥈 2nd Prize — ETSI / Linux Foundation MEC Hackathon 2022

Team Pedraforca (CTTC and Vicomtech), for "Virtualized mobile and edge infrastructures with OpenAPI integrations" — mapping a commercial Amarisoft RAN's proprietary WebSocket interface onto the ETSI MEC012 RNIS API, with a decision engine scaling edge applications through a Kubernetes OpenAPI I built.

What I work with

Platform · Kubernetes kubebuilder Helm kustomize Ansible Terraform KubeVirt Docker

Languages · Go Python FastAPI

Agents · Google ADK MCP A2A LLM tool-calling

Mobile networks · Open5GS free5GC UERANSIM Amarisoft 3GPP 5G SA O-RAN

Standards and orchestration · ETSI MEC ETSI OSM ETSI OpenOP CAPIF CAMARA OpenAPI

Observability · Prometheus Grafana Thanos

Elsewhere

LinkedIn · ORCID

Popular repositories Loading

  1. mec-edge-site mec-edge-site Public

    A Multi-access Edge Computing site on Kubernetes: kubeadm cluster, Prometheus observability spanning infrastructure, apps and the 5G radio network, ETSI OSM orchestration, and a REST API to drive i…

    Python 2

  2. BIND5G BIND5G Public

    Forked from bind5g/BIND5G

    My BIND5G (Basque Industry 5G) contributions at Vicomtech: the NaaS API OpenAPI definition, cross-site Prometheus federation with Thanos, WireGuard site-to-site VPN, and ETSI OSM descriptors

    Go Template

  3. open5gs-k8s open5gs-k8s Public

    Helm chart deploying a complete Open5GS 5G SA core on Kubernetes, with distributed UPF placement across cloud and edge nodes, network slicing and Prometheus monitoring

    Dockerfile

  4. mdalgitsis mdalgitsis Public

    Profile README

  5. rke2-kubernetes-cluster rke2-kubernetes-cluster Public

    Production-oriented Ansible automation for HA RKE2 Kubernetes clusters: embedded-etcd control plane, air-gapped installs, add-ons via the Helm controller, and runbooks for upgrade, backup, restore …

    Jinja

  6. kubevirt-gpu-passthrough kubevirt-gpu-passthrough Public

    Ansible automation for running GPU-passthrough VMs on Kubernetes with KubeVirt: vfio-pci validation, CDI image import, and a Windows guest with a physical GPU over RDP

    Jinja