This is the main repository for the National Data Service NDS Labs initiative.
NDS Labs is designed to be an experimental space for developing and exploring interoperability between services. This is achieved through the use of services containerized with Docker, Kubernetes for container orchestration, deployed on an OpenStack cluster.
For more information, see the architecture documentation.
On top of this foundation, NDS Labs provides a user interface, command line interface, and an API server used to manage the configuration and deployment of containerized services. This repository includes the following:
- apiserver: NDS Labs REST API server, a thin management layer using etcd, Kubernetes, and optional OpenStack APIs.
- gui: Project management UI implemented in angular
- apictl: Command line utility (ndslabsctl)
- For developers, NDS Labs servics can run on any system with Docker 1.9+.
- For production deployment, NDS Labs assumes an OpenStack cluster
NDS Labs includes a catalog of service specifications managed via the ndslabs-specs repository. For more information, see the service catalog documentation.
Currently supported services include:
- Clowder (Clowder, MongoDB, ElasticSearch, RabbitMQ, extractors)
- Dataverse (Dataverse, Rserve, Solr, Postgres, TwoRavens, iRods)
- iRods (iCAT, Cloudbrowser)
- ELK (ElasticSearch, Logstash and Kibana)
See the developer tutorial for instructions on running and developing services for NDS Labs.
There are a few ways to get help for getting up and running. The first is through the NDS discussion mailing list, [email protected]. Only subscribers can post; to subscribe, email [email protected] with the contents "subscribe discuss".
The second way is through IRC. On chat.freenode.net in the channel #nds-epiphyte , folks are often idling and able to respond to questions with some delay.
For more information on our Developer Workflows, see Developer Workflows.
In short, fork this repository and make a pull request. We will review and give feedback.
- ndslabs-clowder: Docker image files for the Clowder example
- ndslabs-irods: Docker image files for the iRODS example
- ndslabs-dataverse: Docker image files for the Dataverse example
- ndslabs-system-shell: Docker image with NDS Labs system tools
- ndslabs-developer-shell: Docker image for NDS Labs developers
- ndslabs-deploy-tools: Cluster deployment tools.