5GTANGO LLCM: Support deployment of multiple service instances
mpeuster opened this issue · 0 comments
mpeuster commented
Issue: Right now we can only deploy one instance per service, because the container names (and other things) will collide.
Solution: Have a short_service_instance_id
or SSIID
and post-fix container names, e.g., vnf_id.vdu_id.SSIID
with it.
Problem (s):
- This will totally break the vim-emu drive of tng-sdk-benchmark.
- Solution idea: Return more details about the names of the deployed artefacts in the instantiation request to ease the mapping in the driver.
- Or ensure that id is always
0
if only one service is running.
- first test integration with tng-bench (branch: emu-feature-294) before merging ANYTHING to master
- this still allows to have collisions if two services have the same container names!
- Include the name of the service as prefix (danger for tng-sdk-bench!) Should be a second step!.
How to test:
# Terminal 1
cd vim-emu
sudo python2 examples/tango_default_cli_topology_2_pop.py
# Terminal 2
cd ~/tng-industrial-pilot/sdk-projects
./on-board-ns1.sh
./instantiate-ns1.sh
# create collision
./instantiate-ns1.sh
Corner cases to think of:
- port mappings will collide! offset by id*1000?
- New services get new subnets, which means the IPs change, which breaks the interconnection between containers -> every instance should get the same subnets separated by VLANs -> pop only once per service not per service_instance
- VLAN isolation seems to work properly for E-LANs
- collisions of VLANs possible? No -> each link/land gets a new one. Up to 4096.
Tests before merge:
- industry pilot running
- single instance
- multi instance -> move to new issue since this is pilot/demo related sonata-nfv/tng-industrial-pilot#122
- benchmarking still works
Attention: Commit already exists; amend.