The Mantl Universe package repository - install DCOS packages on Mantl with Mantl API.
As of mantl-api 0.1.8, the default mantl-universe branch is version-0.7
.
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
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:
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.
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.
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.
mantl.json
includes a setting that allows you to control how the application is load balanced on Mantl clusters. Currently, it is a simple toggle that allows you to control whether the application will be load balanced by Traefik in a Mantl cluster. Here is an example mantl.json
with no other settings other than the load balancing configuration:
{
"mantl": {
"load-balancer": "external|off"
}
}
If mantl.load-balancer
is set to "external", the application will be included in the Traefik load balancer. Any other value will disable load balancing.
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.
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.
Mantl Universe provides the following Mantl supported packages:
- Arangodb
- Cassandra
- Chronos
- Elasticsearch
- HDFS
- Kafka