kombinat api
A golang app created with yo golang
.
👷 This is work in progress and many things are subject to change
Publish a Package
Each package has its own directory, with subdirectories for package revisions. Their package folder contains various files describing how to install, uninstall and configure it.
Folder Structure
Your universe is best kept in a Git to have revisions
A universe has the following folder structure.
└── packages/F/foo
  ├── 0
  │  ├── install.json
  │  ├── uninstall.json
  │  ├── marathon.json
  │  ├── package.json
  ├── 1
  │  ├── install.json
  │  ├── uninstall.json
  │  ├── marathon.json
  │  ├── package.json
  └── ...
All meta information about a universe must also be stored within.
└── meta
  ├── version.json
  └── ...
package.json
Contains general information about a package when published.
install.json
Contains all information necessary to install this package.
uninstall.json
Contains all information necessary to uninstall this package.
marathon.json
we currently support Marathon up to 1.4.x
, but working hard to move to 1.5.x
When using Marathon to run long standing task on Mesos this config contains the description of such. Please, consult the Marathon Docs as how to write such config.
chronos.json
When using Chronos to run scheduled task, you can provide a config for it within your package. It is then applied in the installation process.
Examples
You find the example data in examples/
. etcd import is a s simple as PUT
ing the relevant JSON in the KV.
curl http://127.0.0.1:2379/v2/keys/moppi/universes/dev/packages/example/1/uninstall -XPUT -d value="$(cat marathon.json)"
Getting Started
Install neat tools and dependencies.
make deps && make restore
Build the app.
make build
License
Apache-2.0