deployments-k8s icon indicating copy to clipboard operation
deployments-k8s copied to clipboard

Need for new cmd-ipam-singlepoint elemet

Open ljkiraly opened this issue 2 years ago • 4 comments

Question

Currently the cmd-nse-remote-vlan element provides IPAM function using singlepointipam

The singlepointipam

  • Updates SrcIpAddrs and DstIpAddrs in IpContext and
  • assign one IP to NSE (per NS not per connection), but since the nse-remote-vlan is not part of the data plane this will not be assigned to any interface in the NSE. Only the DstIpAddress will be set in NSC interface.

It is a basic requirement to support the scaling of this NSE type. To improve the high availability of cmd-nse-remote-vlan element the IPAM functionality should be moved to a separate entity.

The following options has been taken into account: 1/ Usage of a CNI IPAM plugin by it's API, but this needs additional permissions for the NSE and requirements for user environment 2/ Store the assigned IPs using some database back-end or etcd storage 3/ Follow similar aproach as cmd-ipam-vl3, achieving data synchronization between IPAM instances using stream API. The cmd-ipam-vl3 does not really fit for nse-remote-vlan's needs - without modifications (e.g. vl3-ipam modifies the routes on IpContext). Instead modifying cmd-ipam-vl3, a new 'cmd-ipam-...' should be created (keeping things clean).

@denis-tingaikin and @edwarnicke This 3rd option seems most feasible, but I would ask your thoughts and suggestions.

Context

https://github.com/networkservicemesh/deployments-k8s/tree/main/examples/remotevlan#nsm-remote-vlan-examples https://github.com/Nordix/nsm-test/blob/b2bf3401df8e7ca934437ae01fe6394ea850f17d/doc/vrm.svg

Example

https://github.com/Nordix/nsm-test/blob/bb2023025eb60f5278f65ae822025e47b38a2d96/doc/singlepoint-ipam.svg

ljkiraly avatar Feb 02 '23 10:02 ljkiraly

Option 3 sounds good to me

/cc @fkautz

denis-tingaikin avatar Feb 02 '23 16:02 denis-tingaikin

@edwarnicke , @ljkiraly I think it was a correct note that we may to consider better naming.

I'd like to suggest these names:

  1. cmd-ipam-vlan
  2. cmd-ipam-singular
  3. cmd-ipam-one-point

denis-tingaikin avatar Feb 14 '23 18:02 denis-tingaikin

@denis-tingaikin , @edwarnicke 'cmd-ipam-one-point' is OK. I will detail the use case in the README.md

ljkiraly avatar Feb 16 '23 14:02 ljkiraly

@edwarnicke Don't you mind if we create 'cmd-ipam-one-point' repository for @ljkiraly ?

denis-tingaikin avatar Feb 18 '23 11:02 denis-tingaikin