hortonworks/sandbox-extend

Name: sandbox-extend

Owner: Hortonworks Inc

Description: null

Forked from: orendain/hortonworks-sandbox

Created: 2018-01-24 21:37:23.0

Updated: 2018-01-24 21:41:58.0

Pushed: 2017-12-01 18:41:58.0

Homepage: null

Size: 95

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Hortonworks Sandbox

The Hortonworks Sandbox is popular, and is now modular!

Complicated builds cause haters, so use native Docker layers!

Something something rhyme, I'm bad at rhymes!

Outline
What This Is

In a nutshell: Rather than building an entire sandbox environment from scratch, use this project to extend any Hortonworks Sandbox image by specifying what changes you'd like to make to an existing image.

The interface between sandbox “layers” are well-defined, making extensions swappable and combinable.

For support, feel free to ping me: eorendain@hortonworks.com

TODO: Add slides or recording of new build architecture unveiling for better visuals

Directory Structure
sandbox-name/
assets/
??? blueprint.json
??? custom-configs.json
??? service-startup.sh
scripts/
??? deploys/
?   ??? blueprint.json
?   ??? kafka.json
?   ??? nifi.json
??? maintenance-mode.sh
??? mysql-setup.sh
??? service-cycle.sh
Dockerfile
packer.json
Build Process

Build process and order of execution:

  1. build.sh - A script that will fire off your sandbox builds
  2. Dockerfile - Build a base docker image, specifying which sandbox layer this new layer should sit on top of
  3. packer.json - Instantiate a docker container using the docker image build from the above Dockerfile. Run all scripts specified in this packer job inside the docker container and export the resulting container as a new sandbox docker image.
File Explanations
Dockerfile
packer.json
Pre-included scripts
Deploying A New Service

A ready-to-go, pre-configured environment like a sandbox may have a number of configurations you'd like preset. To make specifying configurations easy, you're able to drop in an export of your Ambari cluster's blueprint as assets/blueprint.json and manually specify any additional configurations as assets/custom-configs.json.

The recommended way to go about exporting configurations is:

  1. Set up your cluster, configs and all, through Ambari as you see fit.
  2. Have Ambari generate a blueprint for you

Specify the services and it's component parts that you want to install. See scripts/deploy/kafka.sh and scripts/deploy/nifi.sh for examples.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.