Module: caf_deploy/plug_deploy_marathon

Deploys applications on Mesos/Marathon on behalf of CAs.

The name of this component in framework.json should be 'deploy'

Properties:

  {refreshInterval: number, protocol: string, hostname: string,
   port: number, username: string, password: string, redis: caf.redis,
   app: caf.app, listAllRedisPorts: boolean}

where:

  • refreshInterval: time between Marathon status polling in msec.
  • protocol, hostname, port: target URL to access the Marathon service.
  • username, password: login credentials for the Marathon service.
  • redis: configuration properties for the redis service.
  • app: configuration properties for deploying the app.
  • listAllRedisPorts: whether the privileged operation of listing used ports is allowed.

The type caf.redis is:

   {templateFile: string, prefixID: string, rangePortStart: number,
    rangePortEnd: number, image: string, cpus: number, memory: number}

where:

  • templateFile: name of the Redis template.
  • prefixID, rangePortStart, rangePortEnd: how to construct the redis instance name with a dedicated external port.
  • image: Docker image for the redis service.
  • cpus, memory: Fraction of cpu for the instance, memory in megabytes.

The type caf.app is:

   {templateFile: string, args: Array.<caf.json>, instances: number,
    services: Array.<string>, cpus: number, memory: number}

where:

  • templateFile: name of the app template.
  • args: default app arguments.
  • instances: number of instances.
  • services: dependent services like redis.
  • cpus, memory: Fraction of cpu for the instance, memory in megabytes.
Source:

Extends