stormdeployer #1

Supports: precise

Add to new model

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

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
undeploy
(string) Storm topologies that need to be undeployed. Comma separated list of storm topology names.