-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calico/VPP NSM integration #325
Comments
This fix is needed for Calico/VPP to work in Kind: Even though that PR has not been merged, the docker images have been pushed and these steps should work: |
Hi @edwarnicke , just an note that testing the integration in GKE will be complex at this stage, because we haven't found a way to override the default CNI in GKE, so Calico/VPP doesn't work there for now. |
Also, why are you making a difference in the last two steps between Calico/VPP owning or not the main interface? Calico/VPP has relatively strong assumptions that it owns the main interface (= the interface that has the k8s Node address). Giving Calico/VPP an other interface will likely result in a non-functional cluster. As a side note, we are starting to look at giving more than one interface to VPP in a Calico/VPP deployment, but that isn't supported yet. @AloysAugustin You are correct, I should have phrased the last one differently. I was thinking in terms of 'attaches to the interface with vfio' vs 'attaches to the interface with AF_XDP'... the idea being to attach with the highest performance option. |
Ah, sounds good then 👍 |
Calico uses VPP v21.xx, so probably we need to first update used VPP version in Forwarder and after make a new try: |
@edwarnicke
Probably [2] step is not actually needed and can be fixed with changing used govpp version in [1] - needs to be tested. But it actually looks like if we want to support such integration, we need to provide Calico images, k8s configuration files. |
There are 2 issues needs to be fixed to make it work:
Currently there is another issue - Calico and NSM uses different VPP versions with some different additional patches, so for testing I am currently using Calico VPP fork with added NSM VPP patches: Update: |
Failing to start k8s cluster with Calico on packet, so created an issue to the Calico team - projectcalico/vpp-dataplane#217. Update: succeeded to setup a cluster, currently working with tests. Update: All basic scenarios except |
@edwarnicke |
Used https://docs.projectcalico.org/reference/vpp/uplink-configuration All basic scenarios except |
Tested with the abstract sockets solution. All basic scenarios except |
@edwarnicke |
Yes |
@edwarnicke Node schemememif to xxx
xxx to memif
memif to memif
|
This looks about right yes :) |
@edwarnicke |
@Bolodya1997 I'll spin a new image with their patches, test it, and we can look at upgrading. Is everything else working well? Is it just a matter of updating our image and landing some PRs from you? |
I am working on abstract sockets memif implementation, it will be clear after I will finish and test it. |
@edwarnicke This issue affects DNS test, but we are planning to rework it, because it would make more sense if test nslookup something like All other |
@Mixaster995 You will probably need this: networkservicemesh/cmd-forwarder-vpp#421 |
We have tested Calico Integration PR and we have the following suggestions: 1. Сluster on which we will do the integration1.1 PacketThis PR does the integration Calico on Packet. Problems:
1.2 KindA cursory test found problems with the setup - Calico-Vpp doesn't start. Need more time to research. The problem can be related to Calico or to Kind. 2. Forwarder configurationCurrently, we have 2 version of tests - usual and for Calico. We need to consider use only one version. 3. Healing.As I remember there are many chain elements that (explicitly or not) assume that forwarder death == vpp death. It's not right for the Calico case. We need to come up with a correct VPP cleaning when the forwarder is restarted:
Questions
|
DescriptionThere is a problem with forwarder configuration. It is related to network namespaces - Calico-VPP doesn't have grpcfd. For example, when we connect to the Endpoint, forwarder receives network namespace fd using Solutions
We think that 1 is the preferred solution at the moment. We can create an issue to use a different approach in future releases. @edwarnicke |
Calico allows for a choice of dataplanes. VPP is one of them.
Normally cmd-forwarder-vpp, normally cmd-forwarder-vpp starts its own instance of vpp in its own Pod.
In response to a request for integration between NSM and Calico/VPP, the process for integration was described.
This issue is about actually trying (and shaking the bugs out of) such integration.
This breaks down into a number of steps:
The text was updated successfully, but these errors were encountered: