Create a POC local address-only version of the single-node flat network GoEPC user plane
taylor opened this issue · comments
Containerized, flat network version of the Go-GTP-based minimal user plane EPC use case
Purpose:
- research how the go-gtp CNFs can run on K8s with a flat network
- Document results
- see what the next steps for a flat network version using normal K8s assigned container/pod IPs.
Goal:
- minimal changes and effort with existing NFs. Eg. use local addresses as that is what's used in the host-only version
- validate traffic goes through the SGW and PGW as seen in the host-only
GW Tester emulates the minimal required behavior of surrounding nodes to perform a quick and simple testing on S/P-GW to an external end point all running on Kubernetes.
Prereqs:
- Containerized P-GW (#313)
- Containerized S-GW (#314)
- Containerized Pseudo ENB (#315 )
- Containerized Pseudo MME (#316)
Tasks:
- Create example folder under https://github.com/cncf/cnf-testbed/tree/master/examples/use_case (eg. go-gtp-containerized-epc)
- Reuse manifest files from containerized components (P-GW, S-GW, ENB and MME)
- Create config map for each component for connectivity info, etc
- Create script to deploy each component using the config maps
- Create tests procedure and any needed scripts
- Define expected successful results
- Script setup of external HTTP end point
- Document setup of external HTTP end point
- Document example/use case (See existing use cases)
Testing:
- Deploy K8s cluster to Packet
- Deploy HTTP end point
- Deploy minimal EPC example
- Run test
Expectations:
-
Packets to HTTP server are 100% received
-
[ ]
Moved to #324
Multus will be added in #327
Status as of 2020-01-31
GoGTP K8s flat-network implementation
- Deploys GoGTP EPC
- Endpoints not included in this example
- Uses shared "localhost" interface to communicate between containers
- No separation between networks
- No useful way of testing EPC functionality in example
- Also likely wont work due to IPv4 forwarding being disabled. See details in K8s Multus below
- Runs as unprivileged, but with NET_ADMIN capability
- GoGTP code starts as expected
- Likely wont work due to IPv4 forwarding being disabled. See details in K8s Multus below
- Not sure if it makes sense to keep this implementation
- Mainly useful for reference
- Due to shared/flat network testing is difficult
This served it's purpose in research. New ticket will be opened to plan the flat network with normal K8s IPs.