ROS 2 / K8S LAB
90-day plan

From a historical lab to a verified one

Today the lab has a Jazzy image whose talker and listener work inside one container, and a historical three-VM cluster. This plan is how it earns the claim that ROS 2 messages cross between Kubernetes nodes. Each of the four phases has its own page.

Proposal · planning targets, not promisesSource: docs/ROADMAP-2026.md

Where the lab stands today

Three honest states, so the plan has a starting line. Nothing below is claimed beyond what the repository's checks show.

Container tested

ROS 2 Jazzy image

A Jazzy / Ubuntu 24.04 image builds in CI, and a talker and listener exchange messages inside one container. This does not show messages crossing Kubernetes pods or workers.

Legacy

Three-VM Vagrant cluster

The original lab uses ROS 2 Foxy (end of life), Kubernetes 1.29 and Weave Net. It stays as a historical example and needs about 30 GB of VM memory.

Not yet verified

Messages across workers

No check yet proves a ROS 2 message travels between different Kubernetes nodes on a modern profile. The whole plan exists to earn that proof.

Step through the 90 days

Press play, or pick a phase. The marker shows the order of the work. It is not a progress report.

Four phases, one gate

Illustration · sequence only
Timeline of the four roadmap phases A horizontal line with four numbered stops: Define, Run safely, Package, Grow. A diamond marked Gate sits between the second and third stops. The gate is not yet passed. Gatenot yet passed Days 1–141Define Days 15–302Run safely Days 31–603Package Days 61–904Grow
Step 1 of 4

The gate sits at the end of phase 2: a clean host runs the supported install, shows messages between different workers and passes the documented verification. Until then the modern quickstart stays unpublished.

How to read this plan

Targets, not promises

  • A phase can slip. The plan holds a milestone rather than skip a release gate.
  • A successful Docker build or a lint pass is not a substitute for end-to-end ROS 2 verification.
  • No usage, star or performance numbers are published here until they are measured and sourced.

Help move a phase forward

Every phase is a set of public issues. Pick a small one, comment that you would like to work on it, and open a pull request.

Find a first issue ↗ Contribution guide