Description
This component can be used to synchronize Docker images in DockerHub to instances of either OpenStack or OpenNebula with Docker support already configured. To do so, it relies on the WebHooks mechanisms offered by DockerHub infrastructure and it provides a REST interface to list the available images already synchronized and some operations to force the synchronization of individual ones.
Role in INDIGO - DataCloud
The role at INDIGO - DataCloud is to provide a mechanism to synchronize Docker images uploaded to DockerHub (mainly but not limited to images at https://hub.docker.com/u/indigodatacloud/) to local IaaS platforms based on OpenStack and OpenNebula. To do so, it relies on platforms which are configured to register and run Docker images. That functionality is provided by:
- Nova Docker for OpenStack
- ONEDock for OpenNebula
The images synchronized by this component will be used by the Cloud Information Provider scripts to feed the INDIGO CMDB.
Dependencies
This project uses the following elements:
The later one is not present in any maven repository and so it's included in the project to easen the deployment.
Additionally the REST interface is based on Jersey 2.X and Grizzly
All dependencies save OpenNebula java bindings are managed by maven automatically
Configuration
Development
To start developing just clone the repository with git clone https://github.com/indigo-dc/java-syncrepos.git
and create a valid configuration file. Compile the code with mvn compile
To execute the REST server, run ./reposync.sh start
To extend or develop new functionalities, see the development guide