Awesome
mantl-universe
The Mantl Universe package repository - install DCOS packages on Mantl with Mantl API.
As of mantl-api 0.1.4, the default mantl-universe branch is version-0.6
.
Packages
The goals of the packaging system are:
- Make it easy to contribute packages to Mantl
- Rely on existing DCOS packages when possible
- Immutable package versions
- Ability for users to build customized package versions
Package Structure
Mantl Universe packages are based on the DCOS packaging format from Mesosphere. Packages in Mantl Universe are intended to be installed with Mantl API and may depend on the corresponding package version in the Mesosphere Universe. For details on how Mantl API installs packages, you can review the Mantl API README.
Each package is made up of several json files:
package.json
The package.json file is where package metadata is set. This includes things like the name, version, description, and maintainer of the package.
In Mantl Universe, the package.json
is optional if the intention is to use the package.json
from the corresponding package version in the Mesosphere Universe.
config.json
The config.json file contains the configuration schema and defaults for the package.
In Mantl Universe, the config.json
is optional if the intention is to use the config.json
from the corresponding package version in the Mesosphere Universe.
mantl.json
The mantl.json
overrides configuration defaults from the config.json
file (either directly in the package or from the config.json
for the corresponding package version in the Mesosphere universe) with values that are known to work on Mantl.
Also, the presence of the mantl.json dictates whether the package is "supported" on Mantl. It can be empty {}
if there is no specific changes required to make the package run on Mantl.
marathon.json
The marathon.json file contains the Marathon application json for the package. It is a mustache template that is rendered using data from config.json
and mantl.json
.
In Mantl Universe, the marathon.json
is optional if the intention is to use the marathon.json
from the corresponding package version in the Mesosphere Universe.
uninstall.json
The uninstall.json
defines additional behavior when uninstalling a package. The uninstall support is currently limited to removing zookeeper nodes. It is also a mustache template so that variables from config.json
and mantl.json
can be used in the uninstall definition.
{
"zookeeper": {
"delete": [
{
"path": "{{kafka.storage}}",
"always": true
}
]
}
}
Example uninstall.json that deletes zookeeper nodes with a path based on the kafka.storage
variable.
Available Packages
Mantl Universe provides the following Mantl supported packages:
- Arangodb
- Cassandra
- Chronos
- Elasticsearch
- HDFS
- Kafka