Skip to content
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

Proposal: Get rid of Virtualbox and use docker for AGW Testing. #15383

Open
tmdzk opened this issue Feb 26, 2024 · 3 comments
Open

Proposal: Get rid of Virtualbox and use docker for AGW Testing. #15383

tmdzk opened this issue Feb 26, 2024 · 3 comments
Labels
type: proposal Proposals and design documents

Comments

@tmdzk
Copy link
Collaborator

tmdzk commented Feb 26, 2024

Get rid of Virtualbox and use docker for AGW Testing.

Problem

We currently use the Packer+Vagrant(Virtualbox) in order to spin up Magma Access Gateway (AGW). This is very costly especially in CI and local deployment due to the size of the VM. Since we achieved to "dockerize" all AGW services we should take advantage of those to replace the big Vagrant VM.

Jobs that currently use magma Vagrant VM:

The only tricky part is that we can't run OVS in a container due to the gtp patch and we'll have to run a sidecar. @jordanvrtanoski has already a solution in place (also correct me if I'm wrong I haven't checked the code yet)

Solution

The solution would be to magma AGW VM by docker containers in all the above job, this isn't an easy job since we have to make sure the "dockerized" AGW can run smoothly on CI nodes with the OVS sidecar and we also have different VMs for traffic and testing purposes that will also need to be converted to docker

What are the pros of doing that:

  • Image size will be decreased
  • Testing will be faster
  • Github Action is way faster when using docker nodes
  • Running test locally will be way easier
  • If docker becomes the way to deploy it will be super easy to do releases since we won't have to deal with packages and cycling dependencies

Cons:

  • Rewriting the test jobs is not an easy job and will probably take time, is it worth the investment? (Open question)

Non-goals

None

Proposed roadmap

1 - Make sure the AGW can run smoothly locally in an Ubuntu VM with docker installed
2 - Start with that job .github/workflows/lte-integ-test-bazel-magma-deb.yml - Duplicate it, change the AGW to the dockerized one, make sure it runs smoothly for a week or two, kill the old job
3 - Tackle the other jobs listed above with the same process as #2
4 - Update documentation for local testing and development
5 - Be happy

@tmdzk tmdzk added the type: proposal Proposals and design documents label Feb 26, 2024
@lucasgonze
Copy link
Contributor

The OVS Sidecar stuff may be better off as a daemon set. Investigation is not yet complete.

Connect5G is working on K8s deployment.

@lucasgonze
Copy link
Contributor

Connect5G has figured out the architectural issues. They will create a dockerfile. Next: figure out docker compose.

@lucasgonze
Copy link
Contributor

Next step: Jordan to give Tim Dockerfile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: proposal Proposals and design documents
Projects
None yet
Development

No branches or pull requests

2 participants