snabbco / snabb

Snabb: Simple and fast packet networking
Apache License 2.0
2.97k stars 301 forks source link

Automate OpenStack+SnabbNFV deployment for testing #662

Open lukego opened 8 years ago

lukego commented 8 years ago

Context: OpenStack is a beast to deploy. There is a whole industry devoted to helping people do that. Every deployment is different: vendors have their own OpenStack distributions with various value-adds (automated deployment, containerized services, clustered databases, load-balanced REST APIs, etc). Thousands of people are working on this stuff.

Problem: The Snabb Switch community needs to have our own no-fuss way to deploy OpenStack both for testing our software and as a reference for the people who are packaging it in their own distributions. This should be completely reproducible (not devstack), completely flexible (not debian/redhat packages), and avoid all unnecessary details (not a vendor distribution).

Solution: Create our own OpenStack+SnabbNFV distribution for NixOS. This should be a one-liner to deploy, completely reproducible (nix tracks the sha256 hash of all dependencies from libc up to individual Python modules), completely flexible (unified framework for testing all the software combinations we want, both with and without patches), and we can decide how simple/complex to make the configurations of the services.

@domenkozar is working with us on this. He's a NixOS core developer and he works particularly with Python packaging. He has already packaged the OpenStack Liberty software for NixOS (nixos/nixpkgs#10399), written preliminary service startup code (nixos/nixpkgs#10839), and is working on integrating our existing test suite for our OpenStack API extensions.

We decided to package up the latest Liberty release directly instead of staying back on Icehouse. This may require some software updates on the Snabb code but we want to do that anyway.

lukego commented 8 years ago

Update: OpenStack Liberty can now be automatically deployed with NixOS. The out-of-the-box networking uses the ML2 LinuxBridge driver. The next step is to add Snabb NFV and run our test suite.

See snabb-openstack-testing repo for details.