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
[RA2 Ch2] - review CNI and other networking requirements #1112
Comments
I would propose a slightly different approach, instead of specifying CNI as an interface to a network provisioning facilities for the pods, talk about the properties that are needed. CNI is something that evolves and we don't have control over what is going to happen next year. What if we suddenly get to CNI 0.8, where a pod does not get an interface but a set of pre-allocated TCP sockets to the nearest side-car proxy instead. Remember, that's more or less what these apps need today (that is why Istio and friends are so popular). Then you will have to "pin" versions of the CNI for example. Instead, we may talk about the needs of specific traits of the solution:
|
@jeffsaelens I believe the title needs to be renamed to include RA2 and may be references to the specific chapter. |
CNTT follows an approach to start with the requirements (similar to what @nickolaev wrote) which are defined in the Reference Model (and cross referenced in Chapter 2.2), from these requirements we build a high level architecture based on the existing capabilities of open source components in Chapter 3 which is turned into a component level design in Chapter 4. At the moment there is no other production grade solution to provide several interfaces to a container than using DANM or Multus, a CNI multiplexer. |
Even if we know of only one solution, we should not require the solution, but specify the real requirement. |
This captures my intent for opening this issue. Architecture and Requirements are not the same thing. One feeds the other. The wording should be phrased in a way that distinction is clear. It sounds like the requirements are around multi-interface solutions and packet treatment. A reference architecture that might meet this requirement would be CNI-Multiplexing. |
@jeffsaelens @nickolaev @ulikleber I've renamed this issue to reflect what needs to happen (as per @nickolaev's comment). I think a PR that modifies the networking requirements in chapter 2 is what we need, which will then allow us to flow through into subsequent chapters. I would start with @nickolaev's suggestions. |
Let's not forget, that CNTT is about making selections and limiting options. In RA2 we need to select components which are visible for the VNF which includes the CNI-s and the CNI multiplexer. |
@CsatariGergely that's fine, I think all we're saying is the requirement shouldn't be to specify solutions - as per #1184 I'm OK for now for RA2 specifying components, but the requirements and arch spec need to back that up rather than the choice (e.g. CNI in this example) being the starting point. |
Okay, I was a bit list and did not check the target chapter of this. According to the current state:
Is this issue is about to remove the CNI requirement from Chapter 2 of RA2, about to remove the multiple interfaces requirement from RM or about to remove the CNI multiplexer requirement from Ch 3? |
Maybe a slight re-wording would suffice here in ch3:
-->
So basically this would capture the general requirement of being CNI compliant (at least on one of the pod nw interfaces) but still allow some other means to attach "secondary" interfaces to a pod if such way is some day available. |
CNI specifics are visible in pod manifest. Ch4 needs to specify CNI/network solution/service mesh/etc. products/solutions to be used to conform to RA2.
|
@jnummelin is capturing my concerns. The wording is a little too nebulous for me as architecture and requirements are being treated interchangeably. It sounds like the requirements are for CNI compliance and multiple interfaces. The architecture being proposed in RA2 is to meet these requirements via a CNI multiplexer. A clear delineation of of requirements vs proposed architecture across the chapters would clean a lot of the confusion I had up when I first opened this issue. |
@tomkivlin , I hope this req. be defined in Networking Focus Group |
Can I suggest the following overall approach - I am happy to go back over the chapters to ensure we follow this principle if all agree with it: Ch02 - document requirements, avoid those that define a specific choice Which should mean CNI is removed from ch02, the networking model is described in ch03 and then the specific interfaces (CNI, eBPF, etc.) and networking solutions (Calico, DANM, Multus, NSM) can be described in ch04. This may also mean ch05 is not required as the interface specs are all in ch04. |
RM2 meeting on 2020.03.19 agreed to implement the approach in the frame of #1338 |
@tomkivlin this approach looks a lot cleaner. |
@tomkivlin to link PR that will fix #1338 to this issue also. |
Pr anuket-project#1524 restructures Chapter 2. This change implements the changes introduced by the restructuring to Chapter 3. Closes anuket-project#1112 Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
This change implement the changes of Ch02 by anuket-project#1524. Obsoletes anuket-project#1523 Closes anuket-project#1112 Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
* [RA2 Ch4]: Implementing RA2 reorganisation to Ch4 This change implement the changes of Ch02 by #1524. Obsoletes #1523 Closes #1112 Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RA2 Ch4]: Corretions to the CNI multiplexer table Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RM2 Ch04]: Correction of comments Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RA2 Ch4]: Correcting the API requirement from MUST to SHOULD Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
Pr anuket-project#1524 restructures Chapter 2. This change implements the changes introduced by the restructuring to Chapter 3. Closes anuket-project#1112 Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
* [RA2 Ch4]: Implementing RA2 reorganisation to Ch4 This change implement the changes of Ch02 by anuket-project#1524. Obsoletes anuket-project#1523 Closes anuket-project#1112 Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RA2 Ch4]: Corretions to the CNI multiplexer table Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RM2 Ch04]: Correction of comments Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com> * [RA2 Ch4]: Correcting the API requirement from MUST to SHOULD Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
Question, why is a CNI multiplexer being made a hard requirement as opposed to just setting a requirement to support multiple network interfaces?
The text was updated successfully, but these errors were encountered: