This repository contains service profiles, one per directory, which configures XOS with a graph of services to be instantiated. These configurations automate the creation of containers, loading things into the onboarding synchronizer, and starting XOS.
Most frequently, this service-profile repo is checked out by
platform-install during a
conventional build of a CORD pod. The cord-pod style repos work in this way.
When using the testing configurations like test-standalone and frontend,
this repo can be checked out and run on it's own on a Ubuntu 14.04 machine.
The directory common is not a service profile, but contains various common
files and tools that are used by the other service profiles. The
common/Makefile has many common targets and is included by the other
makefiles. common/Makedefs specifies the git URL's and branches to use of
dependent software, which you may need to change if you're doing development on
a specific service.
In most cases, a profile is started by running make local_containers; make in
it's directory. See the per-directory README's for more information, or the
list of targets below.
cord-pod: R-CORD (Residential)opencloud: Opencloud configurationmcord: M-CORD (Mobile)metronetwork: Metro Network/Enterprise E-CORDacord: Analytics for CORD
frontend: Designed for frontend development, this profile starts XOS without synchronizers (other than onboarding) for quick UI iteration.test-standalone: Runs a test suite that tests the REST API and Tosca API.
The devel or opencloud configurations are good examples to start with. All
configurations should start with defining CONFIG_DIR, COMMON_DIR (which
specify paths and should generally be the same as all other configurations),
the .DEFAULT_GOAL which specifies the target to start, and the
DOCKER_PROJECT and BOOTSTRAP_PROJECT variables that specify the names for
the docker containers created during the build process.
Next, include the $(COMMON_DIR)/Makefile which specifies common targets.
Before adding a new target, consier adding it to the common Makefile if is
useful across multiple profiles.
Define the default target, and the customize the other targets - most of the
time, the targets you'll need to customize are onboarding and podconfig,
which control which TOSCA files are loaded and which service synchronizer
containers are created by the onboarding synchronizer.
You'll also need to create a xos.yaml which specifies the configuration of
the onboarded XOS container, and docker-compose-bootstrap.yml which
configures the bootstrap containers. Optionally, create a cleanup.sh to
clean up between run, if your service profile requires it - this enables the
make cleanup target.
There are several make targets created to help manage and the build process,
which are defined in common/Makefile. Run these within the service directories:
- Build the containers from scratch using the local XOS source tree:
make local_containers - Boostrap XOS and start containers:
make - Stop the containers:
make stop - Delete the containers (Database contents is deleted):
make rm - Update XOS source tree:
make update_xos - Update Services source trees:
make update_services - View logs:
make showlogs_bootstrapandmake showlogs - See what containers are running:
make ps - Open a shell on the XOS Bootstrap UI container:
make enter-bootstrap-ui - Open a shell on the XOS UI container:
make enter-ui - Open a shell on the Database container:
make enter-db