tf-devstack is a tool for deployment of OpenSDN from published containers or building and deploying from sources.
It is similar to the OpenStack's devstack tool and allows bringing up OpenSDN along with Kubernetes of OpenStack cloud on an all-in-one single node deployment.
Possible deployment methods are:
Please see particular deployment method readmes for details.
IMPORTANT: some of the parts and pieces are still under construction
Full TF dev suite consists of:
- tf-dev-env - develop and build TF
- tf-devstack - deploy TF
- tf-dev-test - test deployed TF
Each of these tools can be used separately or in conjunction with the other two. They are supposed to be invoked in the sequence they were listed and produce environment (conf files and variables) seamlessly consumable by the next tool.
They provide two main scripts:
- run.sh
- cleanup.sh
Both these scripts accept targets (like run.sh build
) for various actions.
Typical scenarios are (examples are given for centos):
Typical developer's scenario could look like this:
Run a machine, for example AWS instance or a VirtualBox (powerful with lots of memory - 16GB+ recommended- )
Enable passwordless sudo for your user (for centos example: serverfault page)
Install git:
sudo yum install -y git
Clone tf-dev-env:
git clone http://github.com/opensdn-io/tf-dev-env
Prepare the build container and fetch TF sources:
tf-dev-env/run.sh
Make required changes in sources fetched to contrail directory. For example, fetch particular review for controller (you can find download link in the gerrit review):
cd contrail/controller
git fetch "https://gerrit.opensdn.io/opensdn-io/tf-controller" refs/changes/..... && git checkout FETCH_HEAD
cd ../../
Run TF build:
tf-dev-env/run.sh build
Clone tf-devstack:
git clone http://github.com/opensdn-io/tf-devstack
Deploy TF by means of k8s manifests, for example:
tf-devstack/k8s_manifests/run.sh
If you're on VirtualBox, for example, and want to snapshot k8s deployment prior to TF deployment you can use run.sh targets like:
tf-devstack/k8s_manifests/run.sh platform
and then:
tf-devstack/k8s_manifests/run.sh tf
Along with cleanup of particular target you can do tf deployment multiple times:
tf-devstack/k8s_manifests/cleanup.sh tf
Clone tf-dev-test:
git clone http://github.com/opensdn-io/tf-dev-test
Test the deployment by smoke tests, for example:
tf-dev-test/smoke/run.sh
Typical developer's scenario could look like this:
Run a machine, for example AWS instance or a VirtualBox (powerful with lots of memory - 16GB+ recommended- )
Enable passwordless sudo for your user (for centos example: serverfault page)
Install git:
sudo yum install -y git
Clone tf-devstack:
git clone http://github.com/opensdn-io/tf-devstack
Deploy TF by means of k8s manifests, for example:
tf-devstack/k8s_manifests/run.sh
Or if you want to deploy with the most recent sources from master use:
tf-devstack/k8s_manifests/run.sh master