Docker Orchestration Configuration
Go Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
command
deps
parser
plugins
scripts
utilities
.gitignore
LICENSE
Makefile
README.md
commands.go
main.go
version.go

README.md

#hipops Docker Orchestration Configuration

hipops is an agentless orchestration configuration tool for servers running Docker containers, whether it's local or remote. It's a JSON-based configuration of your environments. hipops is a wrapper around the popular orchestration tool, ansible. Ansible Playbooks are powerful for managing configurations and deployments for the remote machines or local VMs. When it comes to docker deployments, there is a need for a configurable orchestration of containers. hipops will allow you to orchestrate cluster of your servers (CoreOS, ubuntu, etc...) with a configuration template locally in VMs and then remotely to AWS or other providers. hipops works with CoreOS, ubuntu, and other linux servers.

##Concept The idea behind hipops configuration is to define a series of apps and re-use them in playbooks, so you just focus on the orchestration of your containers, whether across different physical hosts or the same host. Here is a sample configuration for hipops:

{
  "id": "demo",
  "description": "my demo",
  "env": "dev",
  "dest": "/data",
  "oses": [{
    "user": "ubuntu"
  }],
  "apps": [{
    "name": "mongo",
    "type": "db",
    "image": "aminjam/mongodb:latest",
    "ports": [27017]
  }, {
    "name": "backend-api",
    "type": "nodejs",
    "host": "backend-api-host.com",
    "repository": {
      "branch": "master",
      "sshUrl": "github.com/aminjam/hipops-SAMOMY-backend.git"
    },
    "image": "aminjam/nodejs:latest",
    "ports": [3001]
  }],
  "playbooks": [{
    "inventory": "tag_App-Role_DEMO",
    "apps": ["{{index .Apps 0}}"],
    "containers": [{
      "params": "-v {{.App.Dest}}:/home/app -d {{.App.Image}} /run.sh"
    }]
  }, {
    "inventory": "tag_App-Role_DEMO",
    "apps": ["{{index .Apps 1}}"],
    "state": "deploying",
    "containers": [{
      "params": "-v {{.App.Dest}}:/home/app -e NODE_ENV=development --link {{(index .Apps 0).Name}}:mongo -d {{.App.Image}} /run.sh"
    }]
  }]
}

I am defining two apps: mongo and backend-api, and then I define the first playbook to run {{index .Apps 0}} which in this case is mongo and then the second playbook to run {{index .Apps 1}} which is backend-api.

##Install

Compiled binary

https://github.com/aminjam/hipops/releases

From source

  • git clone https://github.com/aminjam/hipops.git
  • cd hipops && make

##Next steps