Publishing consists of pushing the build docker images to the Docker repository on the target head node. This step can take a while as it has to transfer all the image from the development machine to the target head node. This step is started with the following command:

./gradlew -PdeployConfig=config/podX.yml publish

Once the publish command successfully runs this task is complete. When this step is complete, a Docker registry has been created on the head node and the images built on the dev node have been published to the head node registry.

It might to see this command fail due to different reasons. Sometime, simply re-running the command seems to solve issues.

It can be verified that containers are running, using the docker ps command on the head node.

docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}'
CONTAINER ID        IMAGE               COMMAND                  CREATED AT
c8dd48fc9d18        registry:2.4.0      "/bin/registry serve "   2016-12-02 11:49:12 -0800 PST
e983d2e43760        registry:2.4.0      "/bin/registry serve "   2016-12-02 11:49:12 -0800 PST

Alternatively, the docker registry can also be queried from any node that has access to the head node. We should be able to observe a list of docker images. Output may vary deployment by deployment. Following, is an example from an R-CORD deployment.

curl -sS http://head-node-ip-address:5000/v2/_catalog | jq .
{
 "repositories": [
   "config-generator",
   "consul",
   "cord-dhcp-harvester",
   "cord-ip-allocator",
   "cord-maas-automation",
   "cord-maas-switchq",
   "cord-provisioner",
   "gliderlabs/consul-server",
   "gliderlabs/registrator",
   "mavenrepo",
   "nginx",
   "node",
   "onosproject/onos",
   "redis",
   "swarm",
   "xosproject/chameleon",
   "xosproject/exampleservice-synchronizer",
   "xosproject/fabric-synchronizer",
   "xosproject/gui-extension-rcord",
   "xosproject/gui-extension-vtr",
   "xosproject/onos-synchronizer",
   "xosproject/openstack-synchronizer",
   "xosproject/vrouter-synchronizer",
   "xosproject/vsg",
   "xosproject/vsg-synchronizer",
   "xosproject/vtn-synchronizer",
   "xosproject/vtr-synchronizer",
   "xosproject/xos",
   "xosproject/xos-client",
   "xosproject/xos-corebuilder",
   "xosproject/xos-gui",
   "xosproject/xos-postgres",
   "xosproject/xos-synchronizer-base",
   "xosproject/xos-ui",
   "xosproject/xos-ws"
 ]
}
}

The example above uses the commands curl and jq to retrieve data and pretty print JSON. If you system doesn't have curl or jq installed it can be installed usingĀ sudo apt-get install -y curl jq