Launch simulations using ign-transport relay mode.
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
- Simulations launched:
-
Verifying that environment variables in Gazebo servers and comms bridges are properly configured. This includes IGN_IP
,IGN_RELAY
andIGN_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