stormdeployer #1

Description

Storm Deployer
.
The Storm Deployer provides a mechanism for deploying Storm Topology Jar application files on Juju deployed Storm Servers. Deployed as a
subordinate charm, applications may be subsequently upgraded across all of your Juju services/units.

Overview

The Storm Deployer provides a mechanism for deploying Storm Topology Jar application files on Juju deployed Storm Clusters. Deployed as a
subordinate charm, applications may be subsequently upgraded across all of your Juju services/units.

Usage

The Storm deployer uses a yaml file to define the deployment tasks. The extension by convention is ".storm". The format of the .storm file is:
topology:
- name: name of the topology
jar: jar of the topology
topologyclass: full domain and class of the topology
packaging: mvn package [currently no others available]
repository: the git url where the topology can be found
scriptbeforepackaging: optional script to run before packaging
scriptbeforedeploying: optional script to run before deployment
datasources:
- parameters:
- {name: name1, value: value1}
- {name: name2, value: value2}
type: type, can my mysql/mongo/postgres/redis/kafka/etc.
script: script to execute
- name: another topology
...

In the configuration section of the Storm Deployer put the URL that points to the .storm configuration file.

Example usage:
# Deploy Storm
juju deploy storm
juju deploy stormworker
juju deploy zookeeper
juju add-relation zookeeper storm
juju add-relation zookeeper stormworker
juju add-relation storm:master stormworker:worker
juju expose storm
juju expose stormworker

# Deploy the storm deployer
juju deploy stormdeployer
juju add-relation stormdeployer storm

# TODO
juju quickstart bundle:storm

# Deploy Topologies
juju set stormdeployer "deploy=http://somedomain/somefile.storm"

The storm deployment is logged in /opt/storm/latest/logs/deploy.log.

The storm deployer also support undeploy. Just put the name of the storm topology that needs to be removed in the undeploy field.

For example:
juju set stormdeployer "undeploy=mytopology-1.2"

Known Issues

Storm does not support multiple versions of the same topology with the same name so assure that each time the name of the topology is different. You can use a version number for instance. The deployer will not deploy the topology if it is already deployed.

Configuration

undeploy
(string) Storm topologies that need to be undeployed. Comma separated list of storm topology names.
deploy
(string) Storm topologies that need to be deployed. Comma separated list of urls that point to a stormdeployer file. Example https://github.com/mectors/stormdeployer-examples/abc.storm