Open vparames86 opened 4 years ago
1 - is a yes. for #2 you'd need to update the CRD (NetworkService) and recreate the sidecars with the new topology data. It shouldn't be that difficult I just don't have time to look into this yet.
I will try to answer with my viewpoint here, from NSM point of view.
thanks for chiming in @nickolaev . What about normal interfaces or ipvlan/macvlan? do you want to support them at some point?
Thanks for clarifying @networkop and @nickolaev . I have one more question. I see an ip address pool getting configured
env_ip_addr = client.V1EnvVar(
name="IP_ADDRESS", value=f"10.60.{self.idx}.0/24"
)
and I see from nsm docs that
IPAddress
- [ IP_ADDRESS
], the IP network to initialize a prefix pool in the IPAM composite
why do we need this? Does this have to be a /24 block always? Is there any specific range that I should not use in the private address space?
We don't need this. I'm using this as a way for not having to configure individual ip addresses and rely on NSM's IPAM capabilities. Also this doesn't have to be a /24 block, it can be /31 but then calculating/allocating these blocks would have been more difficult. So, in short, this env variable configures NSE to serve IP addresses to NSCs, you don't have to use it, I've only used it for simplicity.
Hard-coding this into the script was the wrong idea and I thought that I'd need to factor it out at a later stage and make this whole IPAM business optional and configurable by external configuration files. The reason why I left it hard-coded were:
Sorry to bother you with more questions. 1) If I don't use IPAM capabilities, how can I configure the individual ip addresses later once the topology gets created? If I use a /31 block then will I be limited on the NSM URLs? 2) I also see that each nse is linked to an ENDPOINT_NETWORK_SERVICE. If that is the case how can I make a device to be part of multiple topologies (network service)?
Sorry for late response.
Hi Michael,
I have several questions with using NSM. 1) Using NSM eliminates the requirement for meshnet CNI plugin as it is doing the same? 2) Using "replace_namespaced_custom_object" or "patch_namespaced_custom_object" update the links and recreate the topology? 3) I also see in the nsm document that "https://github.com/networkservicemesh/networkservicemesh/blob/master/docs/what-is-nsm.md" it supports connectivity to external devices. Have you tried that scenario?
If the answer to questions 2 & 3 are yes then I can work on them and create a PR.