The following describes a workflow for service or core development using a local environment (e.g., a laptop) with the rcord-mock or rcord-single profile. To learn more about the different scenarios you can refer to Building and Installing CORD.
The mock scenario is suitable for working on (and verifying the correctness of):
core modelsservice modelsguiprofile configurationsThe single scenario also runs the CORD synchronizer containers and can optionally run ONOS and ElasticStack, and may be suitable for working on:
synchronizer stepsThe following assumes you have cloned the source code as described in: Getting the Source Code.
To deploy a mock or a single scenario on your machine, you'll also need to install Vagrant.
These steps may be able to be automated by running the cord-bootstrap.sh script.
You can setup a mock deployment on your machine as follows. If using single, replace rcord-mock.yml with rcord-single.yml:
cd ~/cord/build make PODCONFIG=rcord-mock.yml config make -j4 build
This setups a Vagrant VM, and once the install is complete, you can access:
192.168.46.100:8080/xosssh headnodeBy default the libvirt provider is used to manage the Vagrant VM. If you prefer to use VirtualBox (this is the typical Mac OS case), you can invoke the build command as:
VAGRANT_PROVIDER=virtualbox make -j4 build
The VM that is created as part of this lightweight deployment is configured by default as:
| Scenario | Memory | Cores |
|---|---|---|
| mock | 2048 | 4 |
| single | 4096 | 8 |
This configuration is defined in ~/cord/build/scenarios/mock/config.yaml and ~/cord/build/scenarios/single/config.yaml. You can change those parameters to scale your development VM up or down accordingly to the available resources.
Note that the code is shared in the VM so that:
~/cord is mounted on /opt/cord~/cord_profile is mounted on /opt/cord_profile~/cord/platform-install/credentials/ is mounted on ~/opt/credentials (only in the single scenario)cd ~/cord/build make xos-update-images make -j4 build
This is the workflow that you'll need to follow if you want to start from a fresh XOS installation. Note that it wipes the out the XOS database.
cd ~/cord/build make xos-teardown make -j4 build
cd ~/cord/build make clean-profile make PODCONFIG=rcord-mock.yml config make -j4 build
single scenarioThe single scenario is a medium-weight scenario for synchronizer development, and has optional ElasticStack or ONOS functionality.
To use these, you would invoke the ONOS or ElasticStack milestone target before the build target:
make PODCONFIG=rcord-single.yml config make -j4 milestones/deploy-elasticstack make -j4 build
or
make PODCONFIG=rcord-single.yml config make -j4 milestones/deploy-onos make -j4 build
If you want to use both in combination, make sure to run the ElasticStack target first, so ONOS can send it's logs to ElasticStack.