From 0e83fedc40e0c0f069531c50f4fa58851f75fcc3 Mon Sep 17 00:00:00 2001 From: Federico Paolinelli Date: Fri, 30 Jun 2023 17:06:39 +0200 Subject: [PATCH] Add a test plan document Signed-off-by: Federico Paolinelli --- design/test-plan.md | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 design/test-plan.md diff --git a/design/test-plan.md b/design/test-plan.md new file mode 100644 index 00000000..78b113d0 --- /dev/null +++ b/design/test-plan.md @@ -0,0 +1,54 @@ +# FRR-K8s testplan + +## Summary + +This document lists the set of tests that will be implemented. + +The baseline infrastructure for testing is the same set of external FRR containers we have in MetalLB, which +are defined for both the default VRF and an extra VRF (vrf red): + +- ibgp single hop +- ebgp single hop +- ibgp multi hop +- ebgp multi hop + +### Baseline tests + +- Each FRR instance connects to all the external containers +- The main router is configured with multiple prefixes, we advertise them to all the neighbours via the "all" +flag +- The main router is configured with multiple prefixes, we advertise only a subset of them explicitly +- The main router is configured with multiple prefixes, we differentiate what we advertise to different neighbors +- Prefixes with communities +- Prefixes with local preferences +- Receiving all the routes +- Receiving only some routes + +- Editing the configuration works +- Deleting a given configuration works + +### Configuration composition + +- One configuration related to one neighbor and one to another (session, advertisement) +- One configuration for the router prefixes, and the other for advertising the prefixes (all) +- One configuration for the router prefixes, and the other for advertising the prefixes (some) +- One configuration where we override the announcement list with all +- One configuration where we override the receiving list with all + +### BFD + +- The BFD session is established +- The session parameters are propagated + +### Node selector + +- We apply the configuration to a subset of the nodes +- A general configuration (to advertise), another configuration applied to a subset of the nodes + +### Negative tests + +Invalid configurations that should be caught by the webhooks: + +- Prefixes in the neighbors but not in the router +- prefixes to be associated with local pref but not in the list of advertised ones +- prefixes to be associated with community but not in the list of advertised ones