Coder Social home page Coder Social logo

xohotech / cluster-broccoli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from data-science-platform/cluster-broccoli

0.0 1.0 0.0 6.31 MB

Self service for Nomad based on templates.

License: Apache License 2.0

Scala 59.41% Shell 2.88% JavaScript 0.86% Python 1.62% Elm 34.66% CSS 0.13% Dockerfile 0.19% HCL 0.25%

cluster-broccoli's Introduction

Cluster Broccoli Icon

Build Status Docker Pulls

Description

Cluster Broccoli is a RESTful web service + UI to manage Nomad jobs through a self service application. Jobs are defined based on templates, allowing for a selectable amount of customization.

If you want to give your end users the possibility to create new instances of live demos of your product, while allowing them to customize it (e.g. using an embedded database or an external one, number of cores, ...) - Cluster Broccoli is for you.

Cluster Broccoli is meant to be setup by your IT. Some technical knowledge is required to setup the infrastructure and define the templates. End users can be internal (QA, data scientists) or external (customers, potential customers).

Usage

Web UI

Cluster Broccoli comes with a minimalistic web user interface. It allows you to create, destroy, start and stop your instances based on a set of predefined templates. Please consult the documentation for a detailed description of the Web UI.

image

image

HTTP API

Cluster Broccoli provides a RESTful HTTP API. You can control it using curl, writing your own command line wrapper or connect from your microservices. Please consult the documentation for a detailed description of the HTTP API.

Installation

Requirements

Minimal Setup

  • Nomad (HTTP API v1)
  • Java (for running the Play application)

Recommended Setup

  • Nomad (HTTP API v1)
  • Consul (HTTP API v1)
  • Cluster Broccoli Nomad Job + Docker Image (for running the Play application)

Distributed Application Server

Broccoli needs to run as a single instance. It is neither supported to run multiple Broccoli instances sharing the same instance storage, nor running Broccoli in distributed mode because it uses a local cache to store the session IDs.

Using the Production Docker Image

If you only need an image to run the Broccoli distribution, go with the JRE based production-ready image.

docker run -p 9000:9000 datascienceplatform/cluster-broccoli \
  -Dbroccoli.nomad.url=<your-nomad-url> \
  -Dbroccoli.consul.url=<your-consul-url>

Building from Source

Clone this repository and run sbt dist to build an universal ZIP file in server/target/universal.

To build the production Docker image in a local Docker daemon run sbt docker:publishLocal local instead.
sbt docker:stage creates a directory with intermediate artifacts and the Dockerfile in server/target/docker/stage; use this command to inspect the image contents before building or to manually build the image with a custom docker command.

Configuration

In order to configure Cluster Broccoli, you can add key value pairs to your configuration. The following configuration properties are supported. Please refer to the Wiki for more information about the individual topics.

See Play configuration and Broccoli's reference.conf for available parameters and their meanings.

Nomad and Consul

Property Description Default
broccoli.consul.url Address of your consul server http://localhost:8500
broccoli.consul.lookup Lookup method used for consul. Options: ip or dns (recommended). ip

cluster-broccoli's People

Contributors

frosner avatar swsnr avatar gerrrr avatar sohaibiftikhar avatar ishmeetkaur avatar ynux avatar husterknupp avatar pliguori avatar aurelianrl avatar cubic-bb8 avatar roman-p avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.