Skip to content

Launch simulations using ign-transport relay mode.

Alejo Carballude requested to merge feature/ign_transport_relay into develop

Related tasks

Context

ign-transport requires multicast network support to perform peer discovery. Weave is a CNI Kubernetes plugin that allows having multicast traffic. Multicast traffic in Weave is able to ignore Kubernetes network policies and AWS security groups, allowing traffic between hosts intended to be isolated.

Changes

This MR makes simulations launch with ign-transport in relay mode. Relay mode removes the need for multicast traffic by statically establishing connections between publishers and subscribers. The Gazebo server pod has been updated to work in relay mode, and both Cloudsim and Comms Bridges are now statically configured to connect to the Gazebo server directly.

Other information

Kubernetes Master weave deployments need to be updated to pass the --allow-mcast=false argument to the weave-npc container in order to disable multicast traffic in the weave network.

Additional documentation

Tests

This has been tested by doing the following:

  • Launching simulations on the Integration environment and checking that isolated field-computer nodes are not able to reach nodes using multicast network traffic.
    • Simulations launched:
      • 44fdac3e-5d33-4dcd-a3e3-2c3eccaff508
      • 38f469e2-d0dc-4468-87bb-605ac5590359
  • Verifying that environment variables in Gazebo servers and comms bridges are properly configured. This includes IGN_IP, IGN_RELAY and IGN_PARTITION.
  • Checking that bridges are able to receive ign-transport messages.
  • Checking that field computers are not able to receive ign-transport messages.
  • Verifying that Cloudsim is able to get ign-transport messages from multiple simulations.

CC: @nkoenig

Merge request reports