Skip to content

Instantly share code, notes, and snippets.

@tkrausjr
Created November 9, 2016 22:23
Show Gist options
  • Save tkrausjr/515c09b108c2f494aa4f81167273f995 to your computer and use it in GitHub Desktop.
Save tkrausjr/515c09b108c2f494aa4f81167273f995 to your computer and use it in GitHub Desktop.
{"packages": [{"tags": ["mesosphere", "framework", "artifacts", "artifactory"], "selected": true, "marathon": {"v2AppMustacheTemplate": "ewoiaWQiOiAie3tzZXJ2aWNlLm5hbWV9fXt7I2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fXt7I2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0tc2Vjb25kYXJ5e3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fXt7L2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fSIsCiJjcHVzIjoge3tzZXJ2aWNlLmNwdXN9fSwKIm1lbSI6IHt7c2VydmljZS5tZW19fSwKe3teaGlnaC1hdmFpbGFiaWxpdHkuZW5hYmxlZH19CiAgICAiaW5zdGFuY2VzIjogMSwKe3svaGlnaC1hdmFpbGFiaWxpdHkuZW5hYmxlZH19Cnt7I2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQogICAge3teaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAgICAgICJpbnN0YW5jZXMiOiAxLAogICAge3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAge3sjaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAgICAgICJpbnN0YW5jZXMiOiB7e2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5ub2Rlc319LAogICAge3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQp7ey9oaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KImNvbnRhaW5lciI6IHsKInR5cGUiOiAiRE9DS0VSIiwKImRvY2tlciI6IHsKe3teaGlnaC1hdmFpbGFiaWxpdHkuZW5hYmxlZH19CiAgICAiaW1hZ2UiOiAie3tyZXNvdXJjZS5hc3NldHMuY29udGFpbmVyLmRvY2tlci5hcnRpZmFjdG9yeS1wcm99fSIsCnt7L2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQp7eyNoaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KICAgIHt7XmhpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0KICAgICAgICAiaW1hZ2UiOiAie3tyZXNvdXJjZS5hc3NldHMuY29udGFpbmVyLmRvY2tlci5hcnRpZmFjdG9yeS1oYS1wcmltYXJ5fX0iLAogICAge3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAge3sjaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAgICAgICJpbWFnZSI6ICJ7e3Jlc291cmNlLmFzc2V0cy5jb250YWluZXIuZG9ja2VyLmFydGlmYWN0b3J5LWhhLXNlY29uZGFyeX19IiwKICAgIHt7L2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0Ke3svaGlnaC1hdmFpbGFiaWxpdHkuZW5hYmxlZH19CiJuZXR3b3JrIjogIkhPU1QiCn0sCiJ2b2x1bWVzIjogWwp7e15oaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KICAgIHt7I3Byby5leHRlcm5hbC12b2x1bWVzLmVuYWJsZWR9fQogICAgICAgIHsKICAgICAgICAiY29udGFpbmVyUGF0aCI6ICIvdmFyL29wdC9qZnJvZy9hcnRpZmFjdG9yeS9sb2dzIiwKICAgICAgICAiZXh0ZXJuYWwiOiB7CiAgICAgICAgIm5hbWUiOiAie3tzZXJ2aWNlLm5hbWV9fS1sb2dzIiwKICAgICAgICAicHJvdmlkZXIiOiAiZHZkaSIsCiAgICAgICAgIm9wdGlvbnMiOiB7ICJkdmRpL2RyaXZlciI6ICJyZXhyYXkiIH0KICAgICAgICB9LAogICAgICAgICJtb2RlIjogIlJXIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICJjb250YWluZXJQYXRoIjogIi92YXIvb3B0L2pmcm9nL2FydGlmYWN0b3J5L2V0YyIsCiAgICAgICAgImV4dGVybmFsIjogewogICAgICAgICJuYW1lIjogInt7c2VydmljZS5uYW1lfX0tZXRjIiwKICAgICAgICAicHJvdmlkZXIiOiAiZHZkaSIsCiAgICAgICAgIm9wdGlvbnMiOiB7ICJkdmRpL2RyaXZlciI6ICJyZXhyYXkiIH0KICAgICAgICB9LAogICAgICAgICJtb2RlIjogIlJXIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICJjb250YWluZXJQYXRoIjogIi92YXIvb3B0L2pmcm9nL2FydGlmYWN0b3J5L2RhdGEiLAogICAgICAgICJleHRlcm5hbCI6IHsKICAgICAgICAibmFtZSI6ICJ7e3NlcnZpY2UubmFtZX19LWRhdGEiLAogICAgICAgICJwcm92aWRlciI6ICJkdmRpIiwKICAgICAgICAib3B0aW9ucyI6IHsgImR2ZGkvZHJpdmVyIjogInJleHJheSIgfQogICAgICAgIH0sCiAgICAgICAgIm1vZGUiOiAiUlciCiAgICAgICAgfQogICAge3svcHJvLmV4dGVybmFsLXZvbHVtZXMuZW5hYmxlZH19CiAgICB7e15wcm8uZXh0ZXJuYWwtdm9sdW1lcy5lbmFibGVkfX0KICAgICAgICB7CiAgICAgICAgImNvbnRhaW5lclBhdGgiOiAiL3Zhci9vcHQvamZyb2cvYXJ0aWZhY3RvcnkvbG9ncyIsCiAgICAgICAgImhvc3RQYXRoIjogImFydGlmYWN0b3J5LWxvZ3MiLAogICAgICAgICJtb2RlIjogIlJXIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICJjb250YWluZXJQYXRoIjogImFydGlmYWN0b3J5LWxvZ3MiLAogICAgICAgICJtb2RlIjogIlJXIiwKICAgICAgICAicGVyc2lzdGVudCI6IHsKICAgICAgICAic2l6ZSI6IHt7cHJvLmxvY2FsLXZvbHVtZXMuYXJ0aWZhY3RvcnktaG9tZS1zaXplfX0KICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgImNvbnRhaW5lclBhdGgiOiAiL3Zhci9vcHQvamZyb2cvYXJ0aWZhY3RvcnkvZGF0YSIsCiAgICAgICAgImhvc3RQYXRoIjogImFydGlmYWN0b3J5LWRhdGEiLAogICAgICAgICJtb2RlIjogIlJXIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICJjb250YWluZXJQYXRoIjogImFydGlmYWN0b3J5LWRhdGEiLAogICAgICAgICJtb2RlIjogIlJXIiwKICAgICAgICAicGVyc2lzdGVudCI6IHsKICAgICAgICAic2l6ZSI6IHt7cHJvLmxvY2FsLXZvbHVtZXMuYXJ0aWZhY3RvcnktaG9tZS1zaXplfX0KICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgImNvbnRhaW5lclBhdGgiOiAiL3Zhci9vcHQvamZyb2cvYXJ0aWZhY3RvcnkvZXRjIiwKICAgICAgICAiaG9zdFBhdGgiOiAiYXJ0aWZhY3RvcnktZXRjIiwKICAgICAgICAibW9kZSI6ICJSVyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAiY29udGFpbmVyUGF0aCI6ICJhcnRpZmFjdG9yeS1ldGMiLAogICAgICAgICJtb2RlIjogIlJXIiwKICAgICAgICAicGVyc2lzdGVudCI6IHsKICAgICAgICAic2l6ZSI6IHt7cHJvLmxvY2FsLXZvbHVtZXMuYXJ0aWZhY3RvcnktaG9tZS1zaXplfX0KICAgICAgICB9CiAgICAgICAgfQogICAge3svcHJvLmV4dGVybmFsLXZvbHVtZXMuZW5hYmxlZH19Cnt7L2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQp7eyNoaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KICAgIHsKICAgICJjb250YWluZXJQYXRoIjogIi92YXIvb3B0L2pmcm9nL2NsdXN0ZXIiLAogICAgImhvc3RQYXRoIjogInt7aGlnaC1hdmFpbGFiaWxpdHkuY2x1c3Rlci1ob21lfX0vY2x1c3Rlci1ob21lIiwKICAgICJtb2RlIjogIlJXIgogICAgfQp7ey9oaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KXQp9LAoicG9ydERlZmluaXRpb25zIjogWwp7CiJwb3J0IjogMCwKInByb3RvY29sIjogInRjcCIsCiJuYW1lIjogImluc3RhbmNlIgp9Cnt7I2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQosCnsKInBvcnQiOiAwLAoicHJvdG9jb2wiOiAidGNwIiwKIm5hbWUiOiAibWVtYmVyIgp9Cnt7L2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQpdLAoiZW52Ijogewp7eyNoaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KICAgICJBUlRfTkVUV09SSyI6ICJ7e2hpZ2gtYXZhaWxhYmlsaXR5Lm5ldHdvcmt9fSIsCiAgICB7e15oaWdoLWF2YWlsYWJpbGl0eS5zZWNvbmRhcnkuZW5hYmxlZH19CiAgICAiQVJUX0xJQ0VOU0VTIjogInt7aGlnaC1hdmFpbGFiaWxpdHkubGljZW5zZXN9fSIsCiAgICAiQVJUX0RBVEFCQVNFX0NPTk5FQ1RJT05fU1RSSU5HIjogInt7aGlnaC1hdmFpbGFiaWxpdHkuZGF0YWJhc2UuY29ubmVjdGlvbi1zdHJpbmd9fSIsCiAgICAiQVJUX0RBVEFCQVNFX1VTRVIiOiAgInt7aGlnaC1hdmFpbGFiaWxpdHkuZGF0YWJhc2UudXNlcn19IiwKICAgICJBUlRfREFUQUJBU0VfUEFTU1dPUkQiOiAgInt7aGlnaC1hdmFpbGFiaWxpdHkuZGF0YWJhc2UucGFzc3dvcmR9fSIKICAgIHt7L2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0KICAgIHt7I2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0KICAgICAgICAiQVJUX0FQSV9LRVkiOiAie3toaWdoLWF2YWlsYWJpbGl0eS5zZWNvbmRhcnkuYXBpLWtleX19IgogICAge3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQp7ey9oaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0Ke3teaGlnaC1hdmFpbGFiaWxpdHkuZW5hYmxlZH19CiAgICAiQVJUX0xJQ0VOU0UiOiAie3twcm8ubGljZW5zZX19IiwKICAgICJBUlRfREFUQUJBU0VfQ09OTkVDVElPTl9TVFJJTkciOiAie3twcm8uZGF0YWJhc2UuY29ubmVjdGlvbi1zdHJpbmd9fSIsCiAgICAiQVJUX0RBVEFCQVNFX1VTRVIiOiAgInt7cHJvLmRhdGFiYXNlLnVzZXJ9fSIsCiAgICAiQVJUX0RBVEFCQVNFX1BBU1NXT1JEIjogICJ7e3Byby5kYXRhYmFzZS5wYXNzd29yZH19Igp7ey9oaWdoLWF2YWlsYWJpbGl0eS5lbmFibGVkfX0KfSwKImxhYmVscyI6IHsKe3teaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LmVuYWJsZWR9fQogICAgIk1BUkFUSE9OX1NJTkdMRV9JTlNUQU5DRV9BUFAiOiAidHJ1ZSIsCnt7L2hpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0KIkRDT1NfU0VSVklDRV9OQU1FIjogInt7c2VydmljZS5uYW1lfX0iCn0sCnt7XmhpZ2gtYXZhaWxhYmlsaXR5LnNlY29uZGFyeS5lbmFibGVkfX0KICAgICJ1cGdyYWRlU3RyYXRlZ3kiOnsKICAgICJtaW5pbXVtSGVhbHRoQ2FwYWNpdHkiOiAwLAogICAgIm1heGltdW1PdmVyQ2FwYWNpdHkiOiAwCiAgICB9LAp7ey9oaWdoLWF2YWlsYWJpbGl0eS5zZWNvbmRhcnkuZW5hYmxlZH19Cnt7I2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQogICAge3sjaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LnVuaXF1ZS1ub2Rlc319CiAgICAgICAgImNvbnN0cmFpbnRzIjogW1siaG9zdG5hbWUiLCAiVU5JUVVFIl1dLAogICAge3svaGlnaC1hdmFpbGFiaWxpdHkuc2Vjb25kYXJ5LnVuaXF1ZS1ub2Rlc319Cnt7L2hpZ2gtYXZhaWxhYmlsaXR5LmVuYWJsZWR9fQoiaGVhbHRoQ2hlY2tzIjogWwp7CiJncmFjZVBlcmlvZFNlY29uZHMiOiAxMjAsCiJpbnRlcnZhbFNlY29uZHMiOiAxMCwKIm1heENvbnNlY3V0aXZlRmFpbHVyZXMiOiAzLAoicGF0aCI6ICIvYXJ0aWZhY3RvcnkvYXBpL3N5c3RlbS9waW5nIiwKInBvcnRJbmRleCI6IDAsCiJwcm90b2NvbCI6ICJIVFRQIiwKInRpbWVvdXRTZWNvbmRzIjogMTAKfQpdCn0K"}, "command": null, "scm": "https://github.com/JfrogDev/artifactory-dcos.git", "minDcosReleaseVersion": "1.8", "preInstallNotes": "If you wish to use Artifactory High Availability, you need to ensure the `cluster-home` directory is visible and writable to all the Artifactory cluster nodes in your system (e.g. using NFS storage).", "description": "As the first, and only, universal Artifact Repository Manager on the market, JFrog Artifactory fully supports software packages created by any language or technology.", "resource": {"images": {"icon-small": "http://master.mesos:8082/artifactory/images/jfrog_sml.png", "icon-medium": "http://master.mesos:8082/artifactory/images/jfrog_med.png", "icon-large": "http://master.mesos:8082/artifactory/images/jfrog_lrg.png"}, "assets": {"uris": {}, "container": {"docker": {"artifactory-ha-secondary": "master.mesos:5000/jfrog/artifactory-ha-secondary:4.8.2", "artifactory-ha-primary": "master.mesos:5000/jfrog/artifactory-ha-primary:4.8.2", "artifactory-pro": "master.mesos:5000/jfrog/dcos-artifactory-pro:4.8.2"}}}}, "website": "https://jfrog.com", "packagingVersion": "3.0", "maintainer": "soleng-team@jfrog.com", "postUninstallNotes": "Artifactory has been uninstalled. Note that any data persisted to a NFS share still exists and will need to be manually removed.", "releaseVersion": 0, "config": {"type": "object", "properties": {"service": {"description": "Artifactory service properties.", "type": "object", "properties": {"name": {"description": "The name of this DC/OS service. If running in high-availability mode and this is a secondary node, -secondary will be appended to this name.", "type": "string", "default": "artifactory"}, "cpus": {"description": "CPU shares to allocate to this instance.", "type": "number", "default": 2.0, "minimum": 1.0}, "mem": {"description": "Memory to allocate to this instance.", "type": "number", "default": 2048.0, "minimum": 1024.0}}, "required": ["name", "cpus", "mem"]}, "pro": {"description": "Configuration for Artifactory Pro. These do not apply if Artifactory HA is enabled.", "type": "object", "properties": {"local-volumes": {"description": "Local persistent volumes configuration (only used if external persistent volumes are disabled). Local persistent volumes are created on one machine and Marathon will attempt to re-launch the task on the same machine. Note that if the machine is lost, your data may also be lost.", "type": "object", "properties": {"artifactory-home-size": {"description": "Size of the artifactory-home volume in MiB.", "type": "integer", "default": 5120}}, "required": ["artifactory-home-size"]}, "license": {"description": "License for Artifactory Pro", "type": "string", "default": "NONE"}, "database": {"description": "Database properties.", "type": "object", "properties": {"connection-string": {"description": "Database connection string.", "type": "string", "default": "jdbc:mysql://mysql.marathon.mesos:3306/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true"}, "user": {"description": "Database username.", "type": "string", "default": "jfrogdcos"}, "password": {"description": "Database password.", "type": "string", "default": "jfrogdcos"}}}, "external-volumes": {"description": "External persistent volumes configuration. External persistent volumes are a DC/OS feature that allow your data to be migrated with your task.", "type": "object", "properties": {"enabled": {"description": "Whether to use DC/OS external persistent volumes to persist Artifactory state. By default, this is false.", "type": "boolean", "default": false}}, "required": ["enabled"]}}, "required": ["license", "database", "local-volumes", "external-volumes"]}, "high-availability": {"description": "Configuration for Artifactory High Availability (HA). If enabled, this will override any Artifactory Pro configuration.", "type": "object", "properties": {"enabled": {"description": "Whether to deploy Artifactory HA. By default, Artifactory HA is not deployed.", "type": "boolean", "default": false}, "cluster-home": {"description": "The location of a volume on the host to be used for persisting cluster home directory used when running Artifactory in HA mode. Note that this path must be the same on all DC/OS agents that are running Artifactory.", "type": "string", "default": "/tmp/artifactory/"}, "licenses": {"description": "Provide comma separated licenses to be used by all Artifactory instances.", "type": "string", "default": "NONE"}, "network": {"description": "The network on which the Artifactory instances will communicate, in CIDR notation. For example: 192.168.65.0/24", "type": "string"}, "database": {"description": "Database properties.", "type": "object", "properties": {"connection-string": {"description": "Database connection string.", "type": "string"}, "user": {"description": "Database username.", "type": "string"}, "password": {"description": "Database password.", "type": "string"}}}, "secondary": {"description": "Configuration properties for the Artifactory HA secondary node.", "type": "object", "properties": {"enabled": {"description": "Whether this DC/OS service represents the Artifactory HA secondary instance. To run Artifactory HA, you must deploy one primary DC/OS service and one secondary DC/OS service. By default, this is false (i.e. a primary instance).", "type": "boolean", "default": false}, "unique-nodes": {"description": "Run secondary instances on unique hosts. By default, this is true.", "type": "boolean", "default": true}, "nodes": {"description": "Number of Artifactory Secondary instances for High-Availability. By default, this is 1.", "type": "integer", "default": 1}, "api-key": {"description": "API key generated by the primary Artifactory. This is necessary for the secondary instances to authenticate against the primary instance.", "type": "string"}}, "required": ["enabled"]}}, "required": ["enabled", "database", "licenses"]}}, "required": ["service", "pro", "high-availability"]}, "version": "4.8.2", "postInstallNotes": "Artifactory has been installed.", "framework": false, "licenses": [{"url": "https://github.com/JfrogDev/artifactory-dcos/blob/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "artifactory"}, {"tags": ["cron", "analytics", "batch"], "selected": true, "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e2Nocm9ub3MuaWR9fSIsCiAgImluc3RhbmNlcyI6IHt7Y2hyb25vcy5pbnN0YW5jZXN9fSwKICAiY3B1cyI6IHt7Y2hyb25vcy5jcHVzfX0sCiAgImNtZCI6ICJjaHJvbm9zIHJ1bl9qYXIgLS1tYXN0ZXIge3ttZXNvcy5tYXN0ZXJ9fSAtLXprX2hvc3RzIHt7Y2hyb25vcy56ay1ob3N0c319IC0taHR0cF9wb3J0ICRQT1JUMCAtLW1lc29zX2ZyYW1ld29ya19uYW1lIHt7Y2hyb25vcy5mcmFtZXdvcmstbmFtZX19IC0taG9zdG5hbWUge3tjaHJvbm9zLmhvc3RuYW1lfX0ge3sjY2hyb25vcy5hc3NldHMtcGF0aH19IC0tYXNzZXRzX3BhdGgge3tjaHJvbm9zLmFzc2V0c19wYXRofX0ge3svY2hyb25vcy5hc3NldHMtcGF0aH19IHt7I2Nocm9ub3MuY2Fzc2FuZHJhLWNvbnNpc3RlbmN5fX0gLS1jYXNzYW5kcmFfY29uc2lzdGVuY3kge3tjaHJvbm9zLmNhc3NhbmRyYS1jb25zaXN0ZW5jeX19IHt7L2Nocm9ub3MuY2Fzc2FuZHJhLWNvbnNpc3RlbmN5fX0ge3sjY2hyb25vcy5jYXNzYW5kcmEtY29udGFjdC1wb2ludHN9fSAtLWNhc3NhbmRyYV9jb250YWN0X3BvaW50cyB7e2Nocm9ub3MuY2Fzc2FuZHJhLWNvbnRhY3QtcG9pbnRzfX0ge3svY2hyb25vcy5jYXNzYW5kcmEtY29udGFjdC1wb2ludHN9fSB7eyNjaHJvbm9zLmNhc3NhbmRyYS1rZXlzcGFjZX19IC0tY2Fzc2FuZHJhX2tleXNwYWNlIHt7Y2hyb25vcy5jYXNzYW5kcmEta2V5c3BhY2V9fSB7ey9jaHJvbm9zLmNhc3NhbmRyYS1rZXlzcGFjZX19IHt7I2Nocm9ub3MuY2Fzc2FuZHJhLXBvcnR9fSAtLWNhc3NhbmRyYV9wb3J0IHt7Y2hyb25vcy5jYXNzYW5kcmEtcG9ydH19IHt7L2Nocm9ub3MuY2Fzc2FuZHJhLXBvcnR9fSB7eyNjaHJvbm9zLmNhc3NhbmRyYS10YWJsZX19IC0tY2Fzc2FuZHJhX3RhYmxlIHt7Y2hyb25vcy5jYXNzYW5kcmEtdGFibGV9fSB7ey9jaHJvbm9zLmNhc3NhbmRyYS10YWJsZX19IHt7I2Nocm9ub3MuY2Fzc2FuZHJhLXR0bH19IC0tY2Fzc2FuZHJhX3R0bCB7e2Nocm9ub3MuY2Fzc2FuZHJhLXR0bH19IHt7L2Nocm9ub3MuY2Fzc2FuZHJhLXR0bH19IHt7I2Nocm9ub3MuY2x1c3Rlci1uYW1lfX0gLS1jbHVzdGVyX25hbWUge3tjaHJvbm9zLmNsdXN0ZXItbmFtZX19IHt7L2Nocm9ub3MuY2x1c3Rlci1uYW1lfX0ge3sjY2hyb25vcy5kZWNsaW5lLW9mZmVyLWR1cmF0aW9ufX0gLS1kZWNsaW5lX29mZmVyX2R1cmF0aW9uIHt7Y2hyb25vcy5kZWNsaW5lLW9mZmVyLWR1cmF0aW9ufX0ge3svY2hyb25vcy5kZWNsaW5lLW9mZmVyLWR1cmF0aW9ufX0ge3sjY2hyb25vcy5kaXNhYmxlLWFmdGVyLWZhaWx1cmVzfX0gLS1kaXNhYmxlX2FmdGVyX2ZhaWx1cmVzIHt7Y2hyb25vcy5kaXNhYmxlLWFmdGVyLWZhaWx1cmVzfX0ge3svY2hyb25vcy5kaXNhYmxlLWFmdGVyLWZhaWx1cmVzfX0ge3sjY2hyb25vcy5mYWlsb3Zlci10aW1lb3V0fX0gLS1mYWlsb3Zlcl90aW1lb3V0IHt7Y2hyb25vcy5mYWlsb3Zlci10aW1lb3V0fX0ge3svY2hyb25vcy5mYWlsb3Zlci10aW1lb3V0fX0ge3sjY2hyb25vcy5mYWlsdXJlLXJldHJ5fX0gLS1mYWlsdXJlX3JldHJ5IHt7Y2hyb25vcy5mYWlsdXJlLXJldHJ5fX0ge3svY2hyb25vcy5mYWlsdXJlLXJldHJ5fX0ge3sjY2hyb25vcy5ncmFwaGl0ZS1ncm91cC1wcmVmaXh9fSAtLWdyYXBoaXRlX2dyb3VwX3ByZWZpeCB7e2Nocm9ub3MuZ3JhcGhpdGUtZ3JvdXAtcHJlZml4fX0ge3svY2hyb25vcy5ncmFwaGl0ZS1ncm91cC1wcmVmaXh9fSB7eyNjaHJvbm9zLmdyYXBoaXRlLWhvc3QtcG9ydH19IC0tZ3JhcGhpdGVfaG9zdF9wb3J0IHt7Y2hyb25vcy5ncmFwaGl0ZS1ob3N0LXBvcnR9fSB7ey9jaHJvbm9zLmdyYXBoaXRlLWhvc3QtcG9ydH19IHt7I2Nocm9ub3MuZ3JhcGhpdGUtcmVwb3J0aW5nLWludGVydmFsfX0gLS1ncmFwaGl0ZV9yZXBvcnRpbmdfaW50ZXJ2YWwge3tjaHJvbm9zLmdyYXBoaXRlLXJlcG9ydGluZy1pbnRlcnZhbH19IHt7L2Nocm9ub3MuZ3JhcGhpdGUtcmVwb3J0aW5nLWludGVydmFsfX0ge3sjY2hyb25vcy5odHRwLWNyZWRlbnRpYWxzfX0gLS1odHRwX2NyZWRlbnRpYWxzIHt7Y2hyb25vcy5odHRwLWNyZWRlbnRpYWxzfX0ge3svY2hyb25vcy5odHRwLWNyZWRlbnRpYWxzfX0ge3sjY2hyb25vcy5odHRwLXJlYWxtfX0gLS1odHRwX3JlYWxtIHt7Y2hyb25vcy5odHRwLXJlYWxtfX0ge3svY2hyb25vcy5odHRwLXJlYWxtfX0ge3sjY2hyb25vcy5sZWFkZXItbWF4LWlkbGUtdGltZX19IC0tbGVhZGVyX21heF9pZGxlX3RpbWUge3tjaHJvbm9zLmxlYWRlci1tYXgtaWRsZS10aW1lfX0ge3svY2hyb25vcy5sZWFkZXItbWF4LWlkbGUtdGltZX19IHt7I2Nocm9ub3MubWFpbC1mcm9tfX0gLS1tYWlsX2Zyb20ge3tjaHJvbm9zLm1haWwtZnJvbX19IHt7L2Nocm9ub3MubWFpbC1mcm9tfX0ge3sjY2hyb25vcy5tYWlsLXBhc3N3b3JkfX0gLS1tYWlsX3Bhc3N3b3JkIHt7Y2hyb25vcy5tYWlsLXBhc3N3b3JkfX0ge3svY2hyb25vcy5tYWlsLXBhc3N3b3JkfX0ge3sjY2hyb25vcy5tYWlsLXNlcnZlcn19IC0tbWFpbF9zZXJ2ZXIge3tjaHJvbm9zLm1haWwtc2VydmVyfX0ge3svY2hyb25vcy5tYWlsLXNlcnZlcn19IHt7I2Nocm9ub3MubWFpbC1zc2x9fSAtLW1haWxfc3NsIHt7Y2hyb25vcy5tYWlsLXNzbH19IHt7L2Nocm9ub3MubWFpbC1zc2x9fSB7eyNjaHJvbm9zLm1haWwtdXNlcn19IC0tbWFpbF91c2VyIHt7Y2hyb25vcy5tYWlsLXVzZXJ9fSB7ey9jaHJvbm9zLm1haWwtdXNlcn19IHt7I2Nocm9ub3MubWVzb3MtY2hlY2twb2ludH19IC0tbWVzb3NfY2hlY2twb2ludCB7e2Nocm9ub3MubWVzb3MtY2hlY2twb2ludH19IHt7L2Nocm9ub3MubWVzb3MtY2hlY2twb2ludH19IHt7I2Nocm9ub3MubWVzb3Mtcm9sZX19IC0tbWVzb3Nfcm9sZSB7e2Nocm9ub3MubWVzb3Mtcm9sZX19IHt7L2Nocm9ub3MubWVzb3Mtcm9sZX19IHt7I2Nocm9ub3MubWVzb3MtdGFzay1jcHV9fSAtLW1lc29zX3Rhc2tfY3B1IHt7Y2hyb25vcy5tZXNvcy10YXNrLWNwdX19IHt7L2Nocm9ub3MubWVzb3MtdGFzay1jcHV9fSB7eyNjaHJvbm9zLm1lc29zLXRhc2stZGlza319IC0tbWVzb3NfdGFza19kaXNrIHt7Y2hyb25vcy5tZXNvcy10YXNrLWRpc2t9fSB7ey9jaHJvbm9zLm1lc29zLXRhc2stZGlza319IHt7I2Nocm9ub3MubWVzb3MtdGFzay1tZW19fSAtLW1lc29zX3Rhc2tfbWVtIHt7Y2hyb25vcy5tZXNvcy10YXNrLW1lbX19IHt7L2Nocm9ub3MubWVzb3MtdGFzay1tZW19fSB7eyNjaHJvbm9zLm1pbi1yZXZpdmUtb2ZmZXJzLWludGVydmFsfX0gLS1taW5fcmV2aXZlX29mZmVyc19pbnRlcnZhbCB7e2Nocm9ub3MubWluLXJldml2ZS1vZmZlcnMtaW50ZXJ2YWx9fSB7ey9jaHJvbm9zLm1pbi1yZXZpdmUtb2ZmZXJzLWludGVydmFsfX0ge3sjY2hyb25vcy5yYXZlbi1kc259fSAtLXJhdmVuX2RzbiB7e2Nocm9ub3MucmF2ZW4tZHNufX0ge3svY2hyb25vcy5yYXZlbi1kc259fSB7eyNjaHJvbm9zLnJlY29uY2lsaWF0aW9uLWludGVydmFsfX0gLS1yZWNvbmNpbGlhdGlvbl9pbnRlcnZhbCB7e2Nocm9ub3MucmVjb25jaWxpYXRpb24taW50ZXJ2YWx9fSB7ey9jaHJvbm9zLnJlY29uY2lsaWF0aW9uLWludGVydmFsfX0ge3sjY2hyb25vcy5yZXZpdmUtb2ZmZXJzLWZvci1uZXctam9ic319IC0tcmV2aXZlX29mZmVyc19mb3JfbmV3X2pvYnMge3svY2hyb25vcy5yZXZpdmUtb2ZmZXJzLWZvci1uZXctam9ic319IHt7I2Nocm9ub3Muc2NoZWR1bGUtaG9yaXpvbn19IC0tc2NoZWR1bGVfaG9yaXpvbiB7e2Nocm9ub3Muc2NoZWR1bGUtaG9yaXpvbn19IHt7L2Nocm9ub3Muc2NoZWR1bGUtaG9yaXpvbn19IHt7I2Nocm9ub3Muc2xhY2stY2hhbm5lbH19IC0tc2xhY2tfY2hhbm5lbCB7e2Nocm9ub3Muc2xhY2stY2hhbm5lbH19IHt7L2Nocm9ub3Muc2xhY2stY2hhbm5lbH19IHt7I2Nocm9ub3Muc2xhY2stdG9rZW59fSAtLXNsYWNrX3Rva2VuIHt7Y2hyb25vcy5zbGFjay10b2tlbn19IHt7L2Nocm9ub3Muc2xhY2stdG9rZW59fSB7eyNjaHJvbm9zLnNsYWNrLXVybH19IC0tc2xhY2tfdXJsIHt7Y2hyb25vcy5zbGFjay11cmx9fSB7ey9jaHJvbm9zLnNsYWNrLXVybH19IHt7I2Nocm9ub3MudGFzay1lcHNpbG9ufX0gLS10YXNrX2Vwc2lsb24ge3tjaHJvbm9zLnRhc2stZXBzaWxvbn19IHt7L2Nocm9ub3MudGFzay1lcHNpbG9ufX0ge3sjY2hyb25vcy51c2VyfX0gLS11c2VyIHt7Y2hyb25vcy51c2VyfX0ge3svY2hyb25vcy51c2VyfX0ge3sjY2hyb25vcy53ZWJ1aS11cmx9fSAtLXdlYnVpX3VybCB7e2Nocm9ub3Mud2VidWktdXJsfX0ge3svY2hyb25vcy53ZWJ1aS11cmx9fSB7eyNjaHJvbm9zLnprLXBhdGh9fSAtLXprX3BhdGgge3tjaHJvbm9zLnprLXBhdGh9fSB7ey9jaHJvbm9zLnprLXBhdGh9fSB7eyNjaHJvbm9zLnprLXRpbWVvdXR9fSAtLXprX3RpbWVvdXQge3tjaHJvbm9zLnprLXRpbWVvdXR9fSB7ey9jaHJvbm9zLnprLXRpbWVvdXR9fSIsCiAgIm1lbSI6IHt7Y2hyb25vcy5tZW19fSwKICAicG9ydHMiOiBbCiAgICAwCiAgXSwKICAiZGlzayI6IDAuMCwKICAiZW52IjogewogICAgIk5PX09QIjogIiIKCiAgICB7eyNjaHJvbm9zLmh0dHAtY3JlZGVudGlhbHN9fQogICAgLCAiTUVTT1NQSEVSRV9IVFRQX0NSRURFTlRJQUxTIjogInt7Y2hyb25vcy5odHRwLWNyZWRlbnRpYWxzfX0iCiAgICB7ey9jaHJvbm9zLmh0dHAtY3JlZGVudGlhbHN9fQoKICB9LAogICJjb250YWluZXIiOiB7CiAgICAidHlwZSI6ICJET0NLRVIiLAogICAgImRvY2tlciI6IHsKICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuOTk4NTJhNGExYTZlfX0iLAogICAgICAibmV0d29yayI6ICJIT1NUIgogICAgfQogIH0sCiAgImhlYWx0aENoZWNrcyI6IFsKICAgIHsKICAgICAgImludGVydmFsU2Vjb25kcyI6IDYwLAogICAgICAibWF4Q29uc2VjdXRpdmVGYWlsdXJlcyI6IDIsCiAgICAgICJwYXRoIjogIi8iLAogICAgICAicG9ydEluZGV4IjogMCwKICAgICAgInByb3RvY29sIjogIkhUVFAiCiAgICB9CiAgXSwKICAibGFiZWxzIjogewogICAgIkRDT1NfUEFDS0FHRV9GUkFNRVdPUktfTkFNRSI6ICJ7e2Nocm9ub3MuZnJhbWV3b3JrLW5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX05BTUUiOiAie3tjaHJvbm9zLmZyYW1ld29yay1uYW1lfX0iLAogICAgIkRDT1NfU0VSVklDRV9TQ0hFTUUiOiAiaHR0cCIsCiAgICAiRENPU19TRVJWSUNFX1BPUlRfSU5ERVgiOiAiMCIKICB9Cn0K"}, "command": null, "scm": "https://github.com/mesos/chronos.git", "preInstallNotes": "We recommend a minimum of one node with at least 1 CPU and 2GB of RAM available for the Chronos Service.", "description": "A fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules.", "resource": {"images": {"icon-small": "http://master.mesos:8082/chronos/images/icon-service-chronos-small.png", "icon-medium": "http://master.mesos:8082/chronos/images/icon-service-chronos-medium.png", "icon-large": "http://master.mesos:8082/chronos/images/icon-service-chronos-large.png"}, "assets": {"uris": {}, "container": {"docker": {"99852a4a1a6e": "master.mesos:5000/mesosphere/chronos:chronos-2.4.0-0.1.20150828104228.ubuntu1404-mesos-0.23.0-1.0.ubuntu1404"}}}}, "packagingVersion": "2.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "The Chronos DCOS Service has been uninstalled and will no longer run.\nPlease follow the instructions at https://docs.mesosphere.com/usage/services/chronos/#uninstall to clean up any persisted state", "releaseVersion": 1, "config": {"type": "object", "properties": {"mesos": {"description": "Mesos specific configuration properties", "type": "object", "properties": {"master": {"default": "zk://master.mesos:2181/mesos", "description": "The URL of the Mesos master. The format is a comma-delimited list of hosts like zk://host1:port,host2:port/mesos. If using ZooKeeper, pay particular attention to the leading zk:// and trailing /mesos! If not using ZooKeeper, standard host:port patterns, like localhost:5050 or 10.0.0.5:5050,10.0.0.6:5050, are also acceptable.", "type": "string"}}, "required": ["master"]}, "chronos": {"description": "Chronos Framework Configuration Properties", "type": "object", "additionalProperties": false, "properties": {"assets-path": {"description": "Set a local file system path to load assets from, instead of loading them from the packaged jar.", "type": "string"}, "cassandra-consistency": {"description": "Consistency to use for Cassandra (default = ANY)", "type": "string"}, "cassandra-contact-points": {"description": "Comma separated list of contact points for Cassandra", "type": "string"}, "cassandra-keyspace": {"description": "Keyspace to use for Cassandra (default = metrics)", "type": "string"}, "cassandra-port": {"description": "Port for Cassandra (default = 9042)", "type": "integer", "default": 9042, "minimum": 0}, "cassandra-table": {"description": "Table to use for Cassandra (default = chronos)", "type": "string"}, "cassandra-ttl": {"description": "TTL for records written to Cassandra (default = 31536000)", "type": "integer", "default": 31536000, "minimum": 0}, "cluster-name": {"description": "The name of the cluster where Chronos is run", "type": "string"}, "cpus": {"description": "CPU shares to allocate to each Chronos instance.", "type": "number", "minimum": 0.0, "default": 1.0}, "instances": {"description": "Number of Chronos instances to run.", "type": "integer", "minimum": 0, "default": 1}, "decline-offer-duration": {"description": "The duration (milliseconds) for which to decline offers by default. (Default: Use Mesos default of 5 seconds).", "type": "integer", "minimum": 0, "default": 5000}, "disable-after-failures": {"description": "Disables a job after this many failures have occurred (default = 0)", "type": "integer", "default": 0, "minimum": 0}, "failover-timeout": {"description": "The failover timeout in seconds for Mesos (default = 604800)", "type": "integer", "default": 604800, "minimum": 0}, "failure-retry": {"description": "Number of ms between retries (default = 60000)", "type": "integer", "default": 60000, "minimum": 0}, "framework-name": {"description": "The framework name (default = chronos)", "type": "string", "default": "chronos"}, "graphite-group-prefix": {"description": "Group prefix for Graphite (default = '')", "type": "string"}, "graphite-host-port": {"description": "Host and port (in the form `host:port`) for Graphite", "type": "string"}, "graphite-reporting-interval": {"description": "Graphite reporting interval (seconds) (default = 60)", "type": "integer", "default": 60, "minimum": 0}, "hostname": {"description": "The advertised hostname stored in ZooKeeper so another standby host can redirect to this elected leader (default = localhost)", "type": "string", "default": "$HOST"}, "http-credentials": {"description": "Credentials for accessing the http service. If empty, anyone can access the HTTP endpoint. A username:password pair is expected where the username must not contain ':'. ", "type": "string"}, "http-realm": {"description": "The security realm (aka 'area') associated with the credentials (default = Mesosphere)", "type": "string"}, "id": {"description": "Unique identifier for the app consisting of a series of names separated by slashes.", "type": "string", "default": "/chronos"}, "leader-max-idle-time": {"description": "The look-ahead time for scheduling tasks in milliseconds (default = 5000)", "type": "string"}, "mail-from": {"description": "Mail from field", "type": "string"}, "mail-password": {"description": "Mail password (for auth)", "type": "string"}, "mail-server": {"description": "Address of the mailserver in server:port format", "type": "string"}, "mail-ssl": {"description": "Mail SSL", "type": "string"}, "mail-user": {"description": "Mail user (for auth)", "type": "string"}, "mem": {"description": "Memory (MB) to allocate to each Chronos instance.", "type": "number", "minimum": 512.0, "default": 1024.0}, "mesos-checkpoint": {"description": "Enable checkpointing in Mesos", "type": "string"}, "mesos-role": {"description": "The Mesos role to run tasks under (default = *)", "type": "string"}, "mesos-task-cpu": {"description": "Number of CPUs to request from Mesos for each task (default = 0.1)", "type": "number", "default": 0.1, "minimum": 0.0}, "mesos-task-disk": {"description": "Amount of disk capacity to request from Mesos for each task (MB) (default = 256.0)", "type": "number", "default": 256.0, "minimum": 0.0}, "mesos-task-mem": {"description": "Amount of memory to request from Mesos for each task (MB) (default = 128.0)", "type": "number", "default": 128.0, "minimum": 0.0}, "min-revive-offers-interval": {"description": "Do not ask for all offers (also already seen ones) more often than this interval (ms). (default = 5000)", "type": "integer", "default": 5000, "minimum": 0}, "raven-dsn": {"description": "Raven DSN for connecting to a raven or sentry event service", "type": "string"}, "reconciliation-interval": {"description": "Reconciliation interval in seconds (default = 600)", "type": "integer", "default": 600, "minimum": 0}, "revive-offers-for-new-jobs": {"description": "Whether to call reviveOffers for new or changed jobs. (default: do not use reviveOffers)", "type": "boolean", "default": false}, "schedule-horizon": {"description": "The look-ahead time for scheduling tasks in seconds (default = 60)", "type": "integer", "default": 60, "minimum": 0}, "slack-channel": {"description": "The channel to post to in Slack", "type": "string"}, "slack-token": {"description": "Token needed for posting to Slack", "type": "string"}, "slack-url": {"description": "Webhook URL for posting to Slack", "type": "string"}, "task-epsilon": {"description": "The default epsilon value for tasks, in seconds (default = 60)", "type": "integer", "default": 60, "minimum": 0}, "user": {"description": "The user to run the processes under (default = root)", "type": "string"}, "webui-url": {"description": "The http(s) url of the web ui, defaulting to the advertised hostname", "type": "string"}, "zk-hosts": {"description": "The list of ZooKeeper servers for storing state (default = mesos.master:2181)", "type": "string", "default": "master.mesos:2181"}, "zk-path": {"description": "Path in ZooKeeper for storing state (default = /state)", "type": "string"}, "zk-timeout": {"description": "The timeout for ZooKeeper in milliseconds (default = 10000)", "type": "integer", "default": 10000, "minimum": 0}}, "required": ["cpus", "framework-name", "hostname", "id", "instances", "mem", "zk-hosts"]}}, "required": ["mesos", "chronos"]}, "version": "2.4.0", "postInstallNotes": "Chronos DCOS Service has been successfully installed!\n\n\tDocumentation: http://mesos.github.io/chronos\n\tIssues: https://github.com/mesos/chronos/issues", "framework": true, "licenses": [{"url": "https://github.com/mesos/chronos/blob/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "chronos"}, {"tags": ["kafka", "confluent", "control", "center"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICIve3tjb250cm9sLWNlbnRlci5uYW1lfX0iLAogICJpbnN0YW5jZXMiOiB7e2NvbnRyb2wtY2VudGVyLmluc3RhbmNlc319LAogICJjcHVzIjoge3tjb250cm9sLWNlbnRlci5jcHVzfX0sCiAgIm1lbSI6IHt7Y29udHJvbC1jZW50ZXIubWVtfX0sCiAgIm1haW50YWluZXIiOiAicGFydG5lci1zdXBwb3J0QGNvbmZsdWVudC5pbyIsIAogICJjb250YWluZXIiOiB7CiAgICAidHlwZSI6ICJET0NLRVIiLAogICAgImRvY2tlciI6IHsKICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuaW1hZ2V9fSIsCgkgICJmb3JjZVB1bGxJbWFnZSI6IHRydWUsCiAgICAgICJuZXR3b3JrIjogIkJSSURHRSIsICAgIAogICAgICAicG9ydE1hcHBpbmdzIjogWyB7CiAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDkwMjEsCiAgICAgICAgICAiaG9zdFBvcnQiOiAwLAogICAgICAgICAgInByb3RvY29sIjogInRjcCIKICAgICAgfSBdCiAgICB9CiAgfSwKICAiZW52IjogewogICAgIkNPTlRST0xfQ0VOVEVSX0JPT1RTVFJBUF9TRVJWRVJTIjogImJyb2tlci57e2NvbnRyb2wtY2VudGVyLmthZmthLXNlcnZpY2V9fS5sNGxiLnRoaXNkY29zLmRpcmVjdG9yeTo5MDkyIiwKICAgICJDT05UUk9MX0NFTlRFUl9DT05ORUNUX0NMVVNURVIiOiAie3tjb250cm9sLWNlbnRlci5jb25uZWN0LXNlcnZpY2V9fS5tYXJhdGhvbi5sNGxiLnRoaXNkY29zLmRpcmVjdG9yeTo4MDgzIiwKICAgICJDT05UUk9MX0NFTlRFUl9JTlRFUk5BTF9UT1BJQ1NfUEFSVElUSU9OUyI6ICJ7e2NvbnRyb2wtY2VudGVyLmNvbmZsdWVudC1jb250cm9sY2VudGVyLWludGVybmFsLXRvcGljcy1wYXJ0aXRpb25zfX0iLAogICAgIkNPTlRST0wtQ0VOVEVSX01PTklUT1JJTkdfSU5URVJDRVBUT1JfVE9QSUNfUEFSVElUSU9OUyI6ICJ7e2NvbnRyb2wtY2VudGVyLmNvbmZsdWVudC1tb25pdG9yaW5nLWludGVyY2VwdG9yLXRvcGljLXBhcnRpdGlvbnN9fSIsCiAgICAiQ09OVFJPTF9DRU5URVJfUkVQTElDQVRJT05fRkFDVE9SIjogInt7Y29udHJvbC1jZW50ZXIuY29uZmx1ZW50LWNvbnRyb2xjZW50ZXItaW50ZXJuYWwtdG9waWNzLXJlcGxpY2F0aW9ufX0iLAogICAgIkNPTlRST0xfQ0VOVEVSX1pPT0tFRVBFUl9DT05ORUNUIjogInt7Y29udHJvbC1jZW50ZXIuem9va2VlcGVyLWNvbm5lY3R9fSIKICB9LAogICJoZWFsdGhDaGVja3MiOiBbCiAgICB7CiAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgInBvcnRJbmRleCI6IDAsCiAgICAgICJwYXRoIjogIi8iLAogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMzAwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogNjAsCiAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIwLAogICAgICAibWF4Q29uc2VjdXRpdmVGYWlsdXJlcyI6IDMsCgkgICJpZ25vcmVIdHRwMXh4IjogZmFsc2UKCX0KICBdLAogICJhY2NlcHRlZFJlc291cmNlUm9sZXMiOiBbCiAgICAie3tjb250cm9sLWNlbnRlci5yb2xlfX0iCiAgXSwKICAibGFiZWxzIjogewogICAgIkRDT1NfU0VSVklDRV9OQU1FIjogInt7Y29udHJvbC1jZW50ZXIubmFtZX19IiwKICAgICJEQ09TX1NFUlZJQ0VfU0NIRU1FIjogImh0dHAiLAogICAgIkRDT1NfU0VSVklDRV9QT1JUX0lOREVYIjogIjAiCiAgfQp9Cg=="}, "command": null, "scm": "https://github.com/confluentinc/control-center", "minDcosReleaseVersion": "1.8", "preInstallNotes": "Preparing to install confluent-control-center", "resource": {"images": {"icon-small": "http://master.mesos:8082/confluent-control-center/images/ConfIcon_small.png", "icon-medium": "http://master.mesos:8082/confluent-control-center/images/ConfIcon_medium.png", "icon-large": "http://master.mesos:8082/confluent-control-center/images/ConfIcon_large.png"}, "assets": {"uris": {}, "container": {"docker": {"image": "master.mesos:5000/confluentinc/cp-control-center:3.0.1"}}}}, "packagingVersion": "3.0", "maintainer": "partner-support@confluent.io", "postUninstallNotes": "confluent-control-center was uninstalled successfully.", "releaseVersion": 2, "config": {"$schema": "http://json-schema.org/schema#", "properties": {"control-center": {"properties": {"name": {"default": "control-center", "description": "Name for this control-center application", "type": "string"}, "instances": {"default": 1, "description": "Number of instances to run.", "minimum": 1, "type": "integer"}, "cpus": {"default": 2, "description": "CPU shares to allocate to each control-center instance.", "minimum": 2, "type": "number"}, "mem": {"default": 4096, "description": "Memory (MB) to allocate to each control-center task.", "minimum": 2048, "type": "number"}, "role": {"default": "*", "description": "Deploy control-center only on nodes with this role.", "type": "string"}, "kafka-service": {"default": "confluent-kafka", "description": "Target Apache Kafka by Confluent service to which these tasks will connect. ", "type": "string"}, "connect-service": {"default": "connect", "description": "Service name of Kafka Connect Workers to which this instance will deploy connectors.", "type": "string"}, "confluent-controlcenter-internal-topics-partitions": {"default": 3, "description": "Parition count for internal control-center kafka topics", "type": "number"}, "confluent-controlcenter-internal-topics-replication": {"default": 2, "description": "Replication factor for internal control-center kafka topics", "type": "number"}, "confluent-monitoring-interceptor-topic-partitions": {"default": 3, "description": "Parition count for kafka topics used to store data from the interceptor classes", "type": "number"}, "confluent-monitoring-interceptor-topic-replication": {"default": 2, "description": "Replication factor for kafka topics used to store data from the interceptor classes", "type": "number"}, "zookeeper-connect": {"default": "master.mesos:2181/dcos-service-confluent-kafka", "description": "Zookeeper Connect string for service cluster. Format is comma-separated list of <zk-host>:<zkport>/<kservice>", "type": "string"}}, "required": ["cpus", "mem", "instances", "name"], "type": "object"}}, "type": "object"}, "version": "0.9.2-3.0.1", "postInstallNotes": "confluent-control-center has been installed.", "description": "confluent-control-center package", "licenses": [{"url": "https://raw.githubusercontent.com/confluentinc/control-center/master/LICENSE", "name": "Apache License v2"}], "name": "confluent-control-center"}, {"tags": ["message", "broker", "pubsub", "kafka"], "selected": true, "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAiY3B1cyI6IDEuMCwKICAibWVtIjogMTIzMCwKICAiaW5zdGFuY2VzIjogMSwKICAiY21kIjogImV4cG9ydCBQQVRIPSQobHMgLWQgJE1FU09TX1NBTkRCT1gvanJlKi9iaW4pOiRQQVRIICYmIC4vc2NoZWR1bGVyL2Jpbi9rYWZrYS1zY2hlZHVsZXIgc2VydmVyIC4vc2NoZWR1bGVyL2NvbmYvc2NoZWR1bGVyLnltbCIsCiAgImxhYmVscyI6IHsKICAgICJEQ09TX1BBQ0tBR0VfRlJBTUVXT1JLX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19NSUdSQVRJT05fQVBJX1ZFUlNJT04iOiAidjEiLAogICAgIkRDT1NfTUlHUkFUSU9OX0FQSV9QQVRIIjogIi92MS9wbGFuIiwKICAgICJNQVJBVEhPTl9TSU5HTEVfSU5TVEFOQ0VfQVBQIjoidHJ1ZSIsCiAgICAiRENPU19TRVJWSUNFX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX1BPUlRfSU5ERVgiOiAiMCIsCiAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwIgogIH0sCiAgImVudiI6IHsKICAgICJMRF9MSUJSQVJZX1BBVEgiOiAiL29wdC9tZXNvc3BoZXJlL2xpYiIsCiAgICAiRlJBTUVXT1JLX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRlJBTUVXT1JLX1BSSU5DSVBBTCI6ICJ7e3NlcnZpY2UucHJpbmNpcGFsfX0iLAogICAgIlVTRVIiOiAie3tzZXJ2aWNlLnVzZXJ9fSIsCiAgICAiUExBQ0VNRU5UX1NUUkFURUdZIjogInt7c2VydmljZS5wbGFjZW1lbnRfc3RyYXRlZ3l9fSIsCiAgICAiUEhBU0VfU1RSQVRFR1kiOiAie3tzZXJ2aWNlLnBoYXNlX3N0cmF0ZWd5fX0iLAogICAgIkVOQUJMRV9SRVBMQUNFTUVOVCI6ICJ7e3NlcnZpY2UuZW5hYmxlX3JlcGxhY2VtZW50fX0iLAogICAgIlJFQ09WRVJZX0dSQUNFX1BFUklPRF9TRUMiOiAie3tzZXJ2aWNlLnJlY292ZXJfaW5fcGxhY2VfZ3JhY2VfcGVyaW9kX3NlY3N9fSIsCiAgICAiUkVQTEFDRV9ERUxBWV9TRUMiOiAie3tzZXJ2aWNlLm1pbl9kZWxheV9iZXR3ZWVuX3JlY292ZXJzX3NlY3N9fSIsCiAgICAiRU5BQkxFX0JST0tFUl9IRUFMVEhfQ0hFQ0siOiAie3tzZXJ2aWNlLmVuYWJsZV9oZWFsdGhfY2hlY2t9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19ERUxBWV9TRUMiOiAie3tzZXJ2aWNlLmhlYWx0aF9jaGVja19kZWxheV9zZWN9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19JTlRFUlZBTF9TRUMiOiAie3tzZXJ2aWNlLmhlYWx0aF9jaGVja19pbnRlcnZhbF9zZWN9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19USU1FT1VUX1NFQyI6ICJ7e3NlcnZpY2UuaGVhbHRoX2NoZWNrX3RpbWVvdXRfc2VjfX0iLAogICAgIkJST0tFUl9IRUFMVEhfQ0hFQ0tfTUFYX0ZBSUxVUkVTIjogInt7c2VydmljZS5oZWFsdGhfY2hlY2tfbWF4X2NvbnNlY3V0aXZlX2ZhaWx1cmVzfX0iLAogICAgIkJST0tFUl9IRUFMVEhfQ0hFQ0tfR1JBQ0VfU0VDIjogInt7c2VydmljZS5oZWFsdGhfY2hlY2tfZ3JhY2VfcGVyaW9kX3NlY319IiwKICAgICJCUk9LRVJfQ09VTlQiOiAie3ticm9rZXJzLmNvdW50fX0iLAogICAgIkJST0tFUl9DUFVTIjogInt7YnJva2Vycy5jcHVzfX0iLAogICAgIkJST0tFUl9NRU0iOiAie3ticm9rZXJzLm1lbX19IiwKICAgICJCUk9LRVJfSEVBUF9NQiI6ICJ7e2Jyb2tlcnMuaGVhcC5zaXplfX0iLAogICAgIkJST0tFUl9ESVNLIjogInt7YnJva2Vycy5kaXNrfX0iLAogICAgIkJST0tFUl9QT1JUIjogInt7YnJva2Vycy5wb3J0fX0iLAogICAgIkRJU0tfVFlQRSI6ICJ7e2Jyb2tlcnMuZGlza190eXBlfX0iLAogICAgIktBRktBX1ZFUl9OQU1FIjogImthZmthX2NvbmZsdWVudC0zLjAuMSIsCiAgICAiS0FGS0FfVVJJIjogInt7cmVzb3VyY2UuYXNzZXRzLnVyaXMua2Fma2FfdGd6fX0iLAogICAgIk9WRVJSSURFUl9VUkkiOiAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5vdmVycmlkZXItemlwfX0iLAogICAgIkVYRUNVVE9SX1VSSSI6ICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmV4ZWN1dG9yLXppcH19IiwKICAgICJKQVZBX1VSSSI6ICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmpyZS10YXItZ3p9fSIsCiAgICAiS0FGS0FfWk9PS0VFUEVSX1VSSSIgOiAie3trYWZrYS5rYWZrYV96b29rZWVwZXJfdXJpfX0iLAogICAgIktBRktBX0FEVkVSVElTRV9IT1NUX0lQIiA6ICJ7e2thZmthLmthZmthX2FkdmVydGlzZV9ob3N0X2lwfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFU0VSVkVEX0JST0tFUl9NQVhfSUQiOiAie3trYWZrYS5yZXNlcnZlZF9icm9rZXJfbWF4X2lkfX0iLAogICAgIktBRktBX09WRVJSSURFX09GRlNFVFNfVE9QSUNfQ09NUFJFU1NJT05fQ09ERUMiOiAie3trYWZrYS5vZmZzZXRzX3RvcGljX2NvbXByZXNzaW9uX2NvZGVjfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfTUlOX0JZVEVTIjogInt7a2Fma2EucmVwbGljYV9mZXRjaF9taW5fYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfQ09OVFJPTExFRF9TSFVURE9XTl9SRVRSWV9CQUNLT0ZGX01TIjogInt7a2Fma2EuY29udHJvbGxlZF9zaHV0ZG93bl9yZXRyeV9iYWNrb2ZmX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19GTFVTSF9PRkZTRVRfQ0hFQ0tQT0lOVF9JTlRFUlZBTF9NUyI6ICJ7e2thZmthLmxvZ19mbHVzaF9vZmZzZXRfY2hlY2twb2ludF9pbnRlcnZhbF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9DT05GTFVFTlRfU1VQUE9SVF9NRVRSSUNTX0VOQUJMRSI6ICJ7e2thZmthLmNvbmZsdWVudF9zdXBwb3J0X21ldHJpY3NfZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX0NPTkZMVUVOVF9TVVBQT1JUX0NVU1RPTUVSX0lEIjogInt7a2Fma2EuY29uZmx1ZW50X3N1cHBvcnRfY3VzdG9tZXJfaWR9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfT0ZGU0VUU19UT1BJQ19OVU1fUEFSVElUSU9OUyI6ICJ7e2thZmthLm9mZnNldHNfdG9waWNfbnVtX3BhcnRpdGlvbnN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUFYX0NPTk5FQ1RJT05TX1BFUl9JUF9PVkVSUklERVMiOiAie3trYWZrYS5tYXhfY29ubmVjdGlvbnNfcGVyX2lwX292ZXJyaWRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MRUFERVJfSU1CQUxBTkNFX0NIRUNLX0lOVEVSVkFMX1NFQ09ORFMiOiAie3trYWZrYS5sZWFkZXJfaW1iYWxhbmNlX2NoZWNrX2ludGVydmFsX3NlY29uZHN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfSU5URVJfQlJPS0VSX1BST1RPQ09MX1ZFUlNJT04iOiAie3trYWZrYS5pbnRlcl9icm9rZXJfcHJvdG9jb2xfdmVyc2lvbn19IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfTUVTU0FHRV9GT1JNQVRfVkVSU0lPTiI6ICJ7e2thZmthLmxvZ19tZXNzYWdlX2Zvcm1hdF92ZXJzaW9ufX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfU09DS0VUX1RJTUVPVVRfTVMiOiAie3trYWZrYS5yZXBsaWNhX3NvY2tldF90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0dST1VQX01BWF9TRVNTSU9OX1RJTUVPVVRfTVMiOiAie3trYWZrYS5ncm91cF9tYXhfc2Vzc2lvbl90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX01FVFJJQ1NfTlVNX1NBTVBMRVMiOiAie3trYWZrYS5tZXRyaWNzX251bV9zYW1wbGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0RFTEVURV9SRVRFTlRJT05fTVMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9kZWxldGVfcmV0ZW50aW9uX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19QUkVBTExPQ0FURSI6ICJ7e2thZmthLmxvZ19wcmVhbGxvY2F0ZX19IiwKICAgICJLQUZLQV9PVkVSUklERV9SRVBMSUNBX1NPQ0tFVF9SRUNFSVZFX0JVRkZFUl9CWVRFUyI6ICJ7e2thZmthLnJlcGxpY2Ffc29ja2V0X3JlY2VpdmVfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX09GRlNFVF9NRVRBREFUQV9NQVhfQllURVMiOiAie3trYWZrYS5vZmZzZXRfbWV0YWRhdGFfbWF4X2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX01FU1NBR0VfTUFYX0JZVEVTIjogInt7a2Fma2EubWVzc2FnZV9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX1JPTExfSklUVEVSX0hPVVJTIjogInt7a2Fma2EubG9nX3JvbGxfaml0dGVyX2hvdXJzfX0iLAogICAgIktBRktBX09WRVJSSURFX09GRlNFVFNfUkVURU5USU9OX0NIRUNLX0lOVEVSVkFMX01TIjogInt7a2Fma2Eub2Zmc2V0c19yZXRlbnRpb25fY2hlY2tfaW50ZXJ2YWxfbXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfRkVUQ0hfUFVSR0FUT1JZX1BVUkdFX0lOVEVSVkFMX1JFUVVFU1RTIjogInt7a2Fma2EuZmV0Y2hfcHVyZ2F0b3J5X3B1cmdlX2ludGVydmFsX3JlcXVlc3RzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19SRVRFTlRJT05fQ0hFQ0tfSU5URVJWQUxfTVMiOiAie3trYWZrYS5sb2dfcmV0ZW50aW9uX2NoZWNrX2ludGVydmFsX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19JTkRFWF9JTlRFUlZBTF9CWVRFUyI6ICJ7e2thZmthLmxvZ19pbmRleF9pbnRlcnZhbF9ieXRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9OVU1fTkVUV09SS19USFJFQURTIjogInt7a2Fma2EubnVtX25ldHdvcmtfdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX0NPTU1JVF9USU1FT1VUX01TIjogInt7a2Fma2Eub2Zmc2V0c19jb21taXRfdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1RPUElDX1JFUExJQ0FUSU9OX0ZBQ1RPUiI6ICJ7e2thZmthLm9mZnNldHNfdG9waWNfcmVwbGljYXRpb25fZmFjdG9yfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfTUFYX0JZVEVTIjogInt7a2Fma2EucmVwbGljYV9mZXRjaF9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfQ09OTkVDVElPTlNfTUFYX0lETEVfTVMiOiAie3trYWZrYS5jb25uZWN0aW9uc19tYXhfaWRsZV9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9TT0NLRVRfUkVRVUVTVF9NQVhfQllURVMiOiAie3trYWZrYS5zb2NrZXRfcmVxdWVzdF9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUVUUklDU19TQU1QTEVfV0lORE9XX01TIjogInt7a2Fma2EubWV0cmljc19zYW1wbGVfd2luZG93X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX05VTV9QQVJUSVRJT05TIjogInt7a2Fma2EubnVtX3BhcnRpdGlvbnN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUkVQTElDQV9MQUdfVElNRV9NQVhfTVMiOiAie3trYWZrYS5yZXBsaWNhX2xhZ190aW1lX21heF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfQ0xFQU5FUl9JT19CVUZGRVJfTE9BRF9GQUNUT1IiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9pb19idWZmZXJfbG9hZF9mYWN0b3J9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfT0ZGU0VUU19DT01NSVRfUkVRVUlSRURfQUNLUyI6ICJ7e2thZmthLm9mZnNldHNfY29tbWl0X3JlcXVpcmVkX2Fja3N9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfQVVUT19DUkVBVEVfVE9QSUNTX0VOQUJMRSI6ICJ7e2thZmthLmF1dG9fY3JlYXRlX3RvcGljc19lbmFibGV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfVU5DTEVBTl9MRUFERVJfRUxFQ1RJT05fRU5BQkxFIjogInt7a2Fma2EudW5jbGVhbl9sZWFkZXJfZWxlY3Rpb25fZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfQkFDS09GRl9NUyI6ICJ7e2thZmthLnJlcGxpY2FfZmV0Y2hfYmFja29mZl9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfUk9MTF9IT1VSUyI6ICJ7e2thZmthLmxvZ19yb2xsX2hvdXJzfX0iLAogICAgIktBRktBX09WRVJSSURFX1pPT0tFRVBFUl9TRVNTSU9OX1RJTUVPVVRfTVMiOiAie3trYWZrYS56b29rZWVwZXJfc2Vzc2lvbl90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1BST0RVQ0VSX1BVUkdBVE9SWV9QVVJHRV9JTlRFUlZBTF9SRVFVRVNUUyI6ICJ7e2thZmthLnByb2R1Y2VyX3B1cmdhdG9yeV9wdXJnZV9pbnRlcnZhbF9yZXF1ZXN0c319IiwKICAgICJLQUZLQV9PVkVSUklERV9HUk9VUF9NSU5fU0VTU0lPTl9USU1FT1VUX01TIjogInt7a2Fma2EuZ3JvdXBfbWluX3Nlc3Npb25fdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfSU5ERVhfU0laRV9NQVhfQllURVMiOiAie3trYWZrYS5sb2dfaW5kZXhfc2l6ZV9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTlVNX1JFUExJQ0FfRkVUQ0hFUlMiOiAie3trYWZrYS5udW1fcmVwbGljYV9mZXRjaGVyc319IiwKICAgICJLQUZLQV9PVkVSUklERV9NSU5fSU5TWU5DX1JFUExJQ0FTIjogInt7a2Fma2EubWluX2luc3luY19yZXBsaWNhc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfRkxVU0hfSU5URVJWQUxfTUVTU0FHRVMiOiAie3trYWZrYS5sb2dfZmx1c2hfaW50ZXJ2YWxfbWVzc2FnZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfU09DS0VUX1NFTkRfQlVGRkVSX0JZVEVTIjogInt7a2Fma2Euc29ja2V0X3NlbmRfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0FVVE9fTEVBREVSX1JFQkFMQU5DRV9FTkFCTEUiOiAie3trYWZrYS5hdXRvX2xlYWRlcl9yZWJhbGFuY2VfZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0VOQUJMRSI6ICJ7e2thZmthLmxvZ19jbGVhbmVyX2VuYWJsZX19IiwKICAgICJLQUZLQV9PVkVSUklERV9RVUVVRURfTUFYX1JFUVVFU1RTIjogInt7a2Fma2EucXVldWVkX21heF9yZXF1ZXN0c319IiwKICAgICJLQUZLQV9PVkVSUklERV9DT05UUk9MTEVEX1NIVVRET1dOX01BWF9SRVRSSUVTIjogInt7a2Fma2EuY29udHJvbGxlZF9zaHV0ZG93bl9tYXhfcmV0cmllc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX0xPQURfQlVGRkVSX1NJWkUiOiAie3trYWZrYS5vZmZzZXRzX2xvYWRfYnVmZmVyX3NpemV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX1JFVEVOVElPTl9CWVRFUyI6ICJ7e2thZmthLmxvZ19yZXRlbnRpb25fYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTlVNX0lPX1RIUkVBRFMiOiAie3trYWZrYS5udW1faW9fdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9DT05UUk9MTEVSX1NPQ0tFVF9USU1FT1VUX01TIjogInt7a2Fma2EuY29udHJvbGxlcl9zb2NrZXRfdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfUkVURU5USU9OX0hPVVJTIjogInt7a2Fma2EubG9nX3JldGVudGlvbl9ob3Vyc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfRkxVU0hfU0NIRURVTEVSX0lOVEVSVkFMX01TIjogInt7a2Fma2EubG9nX2ZsdXNoX3NjaGVkdWxlcl9pbnRlcnZhbF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1JFVEVOVElPTl9NSU5VVEVTIjogInt7a2Fma2Eub2Zmc2V0c19yZXRlbnRpb25fbWludXRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9RVU9UQV9XSU5ET1dfU0laRV9TRUNPTkRTIjogInt7a2Fma2EucXVvdGFfd2luZG93X3NpemVfc2Vjb25kc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfU0VHTUVOVF9CWVRFUyI6ICJ7e2thZmthLmxvZ19zZWdtZW50X2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xFQURFUl9JTUJBTEFOQ0VfUEVSX0JST0tFUl9QRVJDRU5UQUdFIjogInt7a2Fma2EubGVhZGVyX2ltYmFsYW5jZV9wZXJfYnJva2VyX3BlcmNlbnRhZ2V9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUFYX0NPTk5FQ1RJT05TX1BFUl9JUCI6ICJ7e2thZmthLm1heF9jb25uZWN0aW9uc19wZXJfaXB9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX0NMRUFORVJfREVEVVBFX0JVRkZFUl9TSVpFIjogInt7a2Fma2EubG9nX2NsZWFuZXJfZGVkdXBlX2J1ZmZlcl9zaXplfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX01JTl9DTEVBTkFCTEVfUkFUSU8iOiAie3trYWZrYS5sb2dfY2xlYW5lcl9taW5fY2xlYW5hYmxlX3JhdGlvfX0iLAogICAgIktBRktBX09WRVJSSURFX1pPT0tFRVBFUl9TWU5DX1RJTUVfTVMiOiAie3trYWZrYS56b29rZWVwZXJfc3luY190aW1lX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1FVT1RBX0NPTlNVTUVSX0RFRkFVTFQiOiAie3trYWZrYS5xdW90YV9jb25zdW1lcl9kZWZhdWx0fX0iLAogICAgIktBRktBX09WRVJSSURFX0RFTEVURV9UT1BJQ19FTkFCTEUiOiAie3trYWZrYS5kZWxldGVfdG9waWNfZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTlVQX1BPTElDWSI6ICJ7e2thZmthLmxvZ19jbGVhbnVwX3BvbGljeX19IiwKICAgICJLQUZLQV9PVkVSUklERV9ERUZBVUxUX1JFUExJQ0FUSU9OX0ZBQ1RPUiI6ICJ7e2thZmthLmRlZmF1bHRfcmVwbGljYXRpb25fZmFjdG9yfX0iLAogICAgIktBRktBX09WRVJSSURFX05VTV9SRUNPVkVSWV9USFJFQURTX1BFUl9EQVRBX0RJUiI6ICJ7e2thZmthLm51bV9yZWNvdmVyeV90aHJlYWRzX3Blcl9kYXRhX2Rpcn19IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfQ0xFQU5FUl9JT19CVUZGRVJfU0laRSI6ICJ7e2thZmthLmxvZ19jbGVhbmVyX2lvX2J1ZmZlcl9zaXplfX0iLAogICAgIktBRktBX09WRVJSSURFX0JBQ0tHUk9VTkRfVEhSRUFEUyI6ICJ7e2thZmthLmJhY2tncm91bmRfdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfU0VHTUVOVF9ERUxFVEVfREVMQVlfTVMiOiAie3trYWZrYS5sb2dfc2VnbWVudF9kZWxldGVfZGVsYXlfbXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUVVPVEFfV0lORE9XX05VTSI6ICJ7e2thZmthLnF1b3RhX3dpbmRvd19udW19fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUkVRVUVTVF9USU1FT1VUX01TIjogInt7a2Fma2EucmVxdWVzdF90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX1RIUkVBRFMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl90aHJlYWRzfX0iLAogICAgIktBRktBX09WRVJSSURFX1FVT1RBX1BST0RVQ0VSX0RFRkFVTFQiOiAie3trYWZrYS5xdW90YV9wcm9kdWNlcl9kZWZhdWx0fX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0JBQ0tPRkZfTVMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9iYWNrb2ZmX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0NPTlRST0xMRURfU0hVVERPV05fRU5BQkxFIjogInt7a2Fma2EuY29udHJvbGxlZF9zaHV0ZG93bl9lbmFibGV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfU09DS0VUX1JFQ0VJVkVfQlVGRkVSX0JZVEVTIjogInt7a2Fma2Euc29ja2V0X3JlY2VpdmVfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfV0FJVF9NQVhfTVMiOiAie3trYWZrYS5yZXBsaWNhX2ZldGNoX3dhaXRfbWF4X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfSElHSF9XQVRFUk1BUktfQ0hFQ0tQT0lOVF9JTlRFUlZBTF9NUyI6ICJ7e2thZmthLnJlcGxpY2FfaGlnaF93YXRlcm1hcmtfY2hlY2twb2ludF9pbnRlcnZhbF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1RPUElDX1NFR01FTlRfQllURVMiOiAie3trYWZrYS5vZmZzZXRzX3RvcGljX3NlZ21lbnRfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX0NMRUFORVJfSU9fTUFYX0JZVEVTX1BFUl9TRUNPTkQiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9pb19tYXhfYnl0ZXNfcGVyX3NlY29uZH19IiwKICAgICJLQUZLQV9PVkVSUklERV9DT01QUkVTU0lPTl9UWVBFIjogInt7a2Fma2EuY29tcHJlc3Npb25fdHlwZX19IgogICAge3sjc2VydmljZS5zZWNyZXRfbmFtZX19CiAgICAsIkRDT1NfU0VSVklDRV9BQ0NPVU5UX0NSRURFTlRJQUwiOiB7ICJzZWNyZXQiOiAic2VydmljZUNyZWRlbnRpYWwiIH0sCiAgICAiTUVTT1NfTU9EVUxFUyI6ICJmaWxlOi8vL29wdC9tZXNvc3BoZXJlL2V0Yy9tZXNvcy1zY2hlZHVsZXItbW9kdWxlcy9kY29zX2F1dGhlbnRpY2F0ZWVfbW9kdWxlLmpzb24iLAogICAgIk1FU09TX0FVVEhFTlRJQ0FURUUiOiAiY29tX21lc29zcGhlcmVfZGNvc19DbGFzc2ljUlBDQXV0aGVudGljYXRlZSIsCiAgICAiU1NMX0NFUlRfRklMRSI6ICIvcnVuL2Rjb3MvcGtpL3Rscy9jZXJ0cy9zY2hlZHVsZXIuY3J0IiwKICAgICJTU0xfS0VZX0ZJTEUiOiAiL3J1bi9kY29zL3BraS90bHMvcHJpdmF0ZS9zY2hlZHVsZXIua2V5IiwKICAgICJTU0xfQ0FfRklMRSI6ICIvcnVuL2Rjb3MvcGtpL0NBL2NlcnRzL2NhLmNydCIsCiAgICAiU1NMX0VOQUJMRUQiOiAidHJ1ZSIKICAgIHt7L3NlcnZpY2Uuc2VjcmV0X25hbWV9fQogIH0sCiAge3sjc2VydmljZS5zZWNyZXRfbmFtZX19CiAgInNlY3JldHMiOiB7CiAgICAic2VydmljZUNyZWRlbnRpYWwiOiB7CiAgICAgICJzb3VyY2UiOiAie3tzZXJ2aWNlLnNlY3JldF9uYW1lfX0iCiAgICB9CiAgfSwKICB7ey9zZXJ2aWNlLnNlY3JldF9uYW1lfX0KICAidXJpcyI6IFsKICAgICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmpyZS10YXItZ3p9fSIsCiAgICAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5zY2hlZHVsZXItemlwfX0iLAogICAgInt7cmVzb3VyY2UuYXNzZXRzLnVyaXMua2Fma2FfdGd6fX0iCiAgXSwKICAiaGVhbHRoQ2hlY2tzIjogWwogICAgewogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMTIwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogMzAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMCwKICAgICAgInBhdGgiOiAiL2FkbWluL2hlYWx0aGNoZWNrIiwKICAgICAgInBvcnRJbmRleCI6IDAsCiAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogNQogICAgfQogIF0sCiAgInJlYWRpbmVzc0NoZWNrcyI6IFsKICAgICAgewogICAgICAgICJuYW1lIjogImNvbmZsdWVudFVwZGF0ZVByb2dyZXNzIiwKICAgICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICAgInBhdGgiOiAiL3YxL3BsYW4iLAogICAgICAgICJwb3J0TmFtZSI6ICJhcGkiLAogICAgICAgICJpbnRlcnZhbCI6IDEwMDAwLAogICAgICAgICJ0aW1lb3V0IjogMTAwMDAsCiAgICAgICAgImh0dHBTdGF0dXNDb2Rlc0ZvclJlYWR5IjogWzIwMF0sCiAgICAgICAgInByZXNlcnZlTGFzdFJlc3BvbnNlIjogdHJ1ZQogICAgICB9CiAgXSwKICAidXBncmFkZVN0cmF0ZWd5Ijp7CiAgICAibWluaW11bUhlYWx0aENhcGFjaXR5IjogMCwKICAgICJtYXhpbXVtT3ZlckNhcGFjaXR5IjogMAogIH0sCiAgInBvcnREZWZpbml0aW9ucyI6IFsKICAgIHsKICAgICAgInBvcnQiOiAwLAogICAgICAicHJvdG9jb2wiOiAidGNwIiwKICAgICAgIm5hbWUiOiAiYXBpIiwKICAgICAgImxhYmVscyI6IHt9CiAgICB9CiAgXQp9Cg=="}, "command": {"pip": ["http://master.mesos:8082/confluent-kafka/commands/bin_wrapper-0.0.1-py2.py3-none-any.whl"]}, "minDcosReleaseVersion": "1.7", "resource": {"images": {"icon-small": "http://master.mesos:8082/confluent-kafka/images/icon-service-kafka-small.png", "icon-medium": "http://master.mesos:8082/confluent-kafka/images/icon-service-kafka-medium.png", "icon-large": "http://master.mesos:8082/confluent-kafka/images/icon-service-kafka-large.png"}, "assets": {"uris": {"scheduler-zip": "http://master.mesos:8082/confluent-kafka/uris/scheduler.zip", "jre-tar-gz": "http://master.mesos:8082/confluent-kafka/uris/jre-8u91-linux-x64.tar.gz", "overrider-zip": "http://master.mesos:8082/confluent-kafka/uris/overrider.zip", "executor-zip": "http://master.mesos:8082/confluent-kafka/uris/executor.zip", "kafka_tgz": "http://master.mesos:8082/confluent-kafka/uris/confluent-3.0.1-mesos.tgz"}}}, "name": "confluent-kafka", "packagingVersion": "3.0", "maintainer": "partner-support@confluent.io", "postUninstallNotes": "Apache Kafka by Confluent has been uninstalled. Please run the framework_cleaner to remove any persistent state if required.", "releaseVersion": 8, "config": {"type": "object", "properties": {"service": {"type": "object", "description": "DC/OS service configuration properties", "properties": {"name": {"description": "The name of the Apache Kafka by Confluent instance", "type": "string", "default": "confluent-kafka"}, "principal": {"description": "The principal for the Kafka service instance.", "type": "string", "default": "confluent-kafka-principal"}, "secret_name": {"description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", "type": "string", "default": ""}, "placement_strategy": {"description": "Broker placement strategy. See documentation. [ANY, NODE]", "type": "string", "default": "NODE"}, "phase_strategy": {"description": "Broker rollout strategy. See documentation. [INSTALL, STAGE]", "type": "string", "default": "INSTALL"}, "enable_replacement": {"description": "Enable automated replacement of Brokers. WARNING: May cause data loss. See documentation.", "type": "boolean", "default": false}, "recover_in_place_grace_period_secs": {"description": "The minimum amount of time (in minutes) which must pass before a Broker may be destructively replaced.", "type": "number", "default": 1200}, "min_delay_between_recovers_secs": {"description": "The minimum amount of time (in seconds) which must pass between destructive replacements of Brokers.", "type": "number", "default": 600}, "enable_health_check": {"description": "Enable automated detection of Broker failures which did not result in a Broker process exit.", "type": "boolean", "default": true}, "health_check_delay_sec": {"description": "The period of time (in seconds) waited before the health-check begins execution.", "type": "number", "default": 15}, "health_check_interval_sec": {"description": "The period of time (in seconds) between health-check executions.", "type": "number", "default": 10}, "health_check_timeout_sec": {"description": "The duration (in seconds) allowed for a health-check to complete before it is considered a failure.", "type": "number", "default": 20}, "health_check_grace_period_sec": {"description": "The period of time after the delay (in seconds) before health-check failures count towards the maximum consecutive failures.", "type": "number", "default": 10}, "health_check_max_consecutive_failures": {"description": "The the number of consecutive failures which cause a Broker process to exit.", "type": "number", "default": 3}}, "required": ["placement_strategy", "phase_strategy"]}, "brokers": {"description": "Kafka broker configuration properties", "type": "object", "properties": {"cpus": {"description": "Broker cpu requirements", "type": "number", "default": 1.0}, "mem": {"description": "Broker mem requirements", "type": "integer", "default": 2304}, "heap": {"description": "The Kafka process JVM heap configuration object", "type": "object", "properties": {"size": {"type": "integer", "description": "The amound of JVM heap, in MB, allocated to the Kafka broker process.", "default": 2048}}, "additionalProperties": false, "required": ["size"]}, "disk": {"description": "Broker disk requirements (only respected with persistent volumes)", "type": "integer", "default": 5000}, "disk_type": {"type": "string", "description": "Disk type to be used for storing broker data. See documentation. [ROOT, MOUNT]", "default": "ROOT"}, "count": {"description": "Number of brokers to run", "type": "number", "default": 3}, "port": {"description": "Port for broker to listen on", "type": "integer", "default": 0}}, "required": ["cpus", "mem", "disk", "count"]}, "executor": {"description": "Kafka executor configuration properties", "type": "object", "properties": {"cpus": {"description": "Executor cpu requirements", "type": "number", "default": 0.5}, "mem": {"description": "Executor mem requirements", "type": "integer", "default": 256}, "disk": {"description": "Executor disk requirements", "type": "integer", "default": 0}}, "required": ["cpus", "mem", "disk"]}, "kafka": {"description": "Kafka service configuration properties", "type": "object", "additionalProperties": false, "properties": {"kafka_zookeeper_uri": {"title": "The address of the Zookeeper cluster used by Kafka.", "description": "This should be the address of the Zookeeper cluster Kafka will use.", "type": "string", "default": "master.mesos:2181"}, "kafka_advertise_host_ip": {"description": "Automatically configure advertised.host.name with the IP address detected by /opt/mesosphere/detect_ip", "type": "boolean", "default": true}, "auto_create_topics_enable": {"title": "auto.create.topics.enable", "description": "Enables auto creation of topic on the server", "type": "boolean", "default": true}, "auto_leader_rebalance_enable": {"title": "auto.leader.rebalance.enable", "description": "Enables auto leader balancing. A background thread checks and triggers leader balance if required at regular intervals", "type": "boolean", "default": true}, "background_threads": {"title": "background.threads", "description": "The number of threads to use for various background processing tasks", "type": "integer", "default": 10}, "compression_type": {"title": "compression.type", "description": "Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', lz4). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.", "type": "string", "default": "producer"}, "delete_topic_enable": {"title": "delete.topic.enable", "description": "Enables delete topic. Delete topic through the admin tool will have no effect if this config is turned off", "type": "boolean", "default": false}, "leader_imbalance_check_interval_seconds": {"title": "leader.imbalance.check.interval.seconds", "description": "The frequency with which the partition rebalance check is triggered by the controller", "type": "integer", "default": 300}, "leader_imbalance_per_broker_percentage": {"title": "leader.imbalance.per.broker.percentage", "description": "The ratio of leader imbalance allowed per broker. The controller would trigger a leader balance if it goes above this value per broker. The value is specified in percentage.", "type": "integer", "default": 10}, "confluent_support_metrics_enable": {"title": "confluent.support.metrics.enable", "description": "Enable the Metrics feature to collect and report support metrics", "type": "boolean", "default": false}, "confluent_support_customer_id": {"title": "confluent.support.customer.id", "description": "The customer ID under which support metrics will be collected and reported. When set to 'anonymous', only a reduced set of metrics is collected and reported.", "type": "string", "default": "anonymous"}, "log_flush_interval_messages": {"title": "log.flush.interval.messages", "description": "The number of messages accumulated on a log partition before messages are flushed to disk", "type": "string", "default": "9223372036854775807"}, "log_flush_offset_checkpoint_interval_ms": {"title": "log.flush.offset.checkpoint.interval.ms", "description": "The frequency with which we update the persistent record of the last flush which acts as the log recovery point", "type": "integer", "default": 60000}, "log_flush_scheduler_interval_ms": {"title": "log.flush.scheduler.interval.ms", "description": "The frequency in ms that the log flusher checks whether any log needs to be flushed to disk", "type": "string", "default": "9223372036854775807"}, "log_retention_bytes": {"title": "log.retention.bytes", "description": "The maximum size of the log before deleting it", "type": "string", "default": "-1"}, "log_retention_hours": {"title": "log.retention.hours", "description": "The number of hours to keep a log file before deleting it (in hours), tertiary to log.retention.ms property", "type": "integer", "default": 168}, "log_roll_hours": {"title": "log.roll.hours", "description": "The maximum time before a new log segment is rolled out (in hours), secondary to log.roll.ms property", "type": "integer", "default": 168}, "log_roll_jitter_hours": {"title": "log.roll.jitter.hours", "description": "The maximum jitter to subtract from logRollTimeMillis (in hours), secondary to log.roll.jitter.ms property", "type": "integer", "default": 0}, "log_segment_bytes": {"title": "log.segment.bytes", "description": "The maximum size of a single log file", "type": "integer", "default": 1073741824}, "log_segment_delete_delay_ms": {"title": "log.segment.delete.delay.ms", "description": "The amount of time to wait before deleting a file from the filesystem", "type": "integer", "default": 60000}, "message_max_bytes": {"title": "message.max.bytes", "description": "The maximum size of message that the server can receive", "type": "integer", "default": 1000012}, "min_insync_replicas": {"title": "min.insync.replicas", "description": "define the minimum number of replicas in ISR needed to satisfy a produce request with required.acks=-1 (or all)", "type": "integer", "default": 1}, "num_io_threads": {"title": "num.io.thread", "description": "The number of io threads that the server uses for carrying out network requests", "type": "integer", "default": 8}, "num_network_threads": {"title": "num.network.threads", "description": "The number of network threads that the server uses for handling network requests", "type": "integer", "default": 3}, "num_recovery_threads_per_data_dir": {"title": "num.recovery.threads.per.data.dir", "description": "The number of threads per data directory to be used for log recovery at startup and flushing at shutdown", "type": "integer", "default": 1}, "num_replica_fetchers": {"title": "num.replica.fetchers", "description": "Number of fetcher threads used to replicate messages from a source broker. Increasing this value can increase the degree of I/O parallelism in the follower broker.", "type": "integer", "default": 1}, "offset_metadata_max_bytes": {"title": "offset.metadata.max.bytes", "description": "The maximum size for a metadata entry associated with an offset commit", "type": "integer", "default": 4096}, "offsets_commit_required_acks": {"title": "offsets.commit.required.acks", "description": "The required acks before the commit can be accepted. In general, the default (-1) should not be overridden", "type": "integer", "default": -1}, "offsets_commit_timeout_ms": {"title": "offsets.commit.timeout.ms", "description": "Offset commit will be delayed until all replicas for the offsets topic receive the commit or this timeout is reached. This is similar to the producer request timeout.", "type": "integer", "default": 5000}, "offsets_load_buffer_size": {"title": "offsets.load.buffer.size", "description": "Batch size for reading from the offsets segments when loading offsets into the cache.", "type": "integer", "default": 5242880}, "offsets_retention_check_interval_ms": {"title": "offsets.retention.check.interval.ms", "description": "Frequency at which to check for stale offsets", "type": "integer", "default": 600000}, "offsets_retention_minutes": {"title": "offsets.retention.minutes", "description": "Log retention window in minutes for offsets topic", "type": "integer", "default": 1440}, "offsets_topic_compression_codec": {"title": "offsets.topic.compression.codec", "description": "Compression codec for the offsets topic - compression may be used to achieve 'atomic' commits", "type": "integer", "default": 0}, "offsets_topic_num_partitions": {"title": "offsets.topic.num.partitions", "description": "The number of partitions for the offset commit topic (should not change after deployment).", "type": "integer", "default": 50}, "offsets_topic_replication_factor": {"title": "offsets.topic.replication.factor", "description": "The replication factor for the offsets topic (set higher to ensure availability). To ensure that the effective replication factor of the offsets topic is the configured value, the number of alive brokers has to be at least the replication factor at the time of the first request for the offsets topic. If not, either the offsets topic creation will fail or it will get a replication factor of min(alive brokers, configured replication factor)", "type": "integer", "default": 3}, "offsets_topic_segment_bytes": {"title": "offsets.topic.segment.bytes", "description": "The offsets topic segment bytes should be kept relatively small in order to facilitate faster log compaction and cache loads", "type": "integer", "default": 104857600}, "queued_max_requests": {"title": "queued.max.requests", "description": "The number of queued requests allowed before blocking the network threads ", "type": "integer", "default": 500}, "quota_consumer_default": {"title": "quota.consumer.default", "description": "Any consumer distinguished by clientId/consumer group will get throttled if it fetches more bytes than this value per-second", "type": "string", "default": "9223372036854775807"}, "quota_producer_default": {"title": "quota.producer.default", "description": "Any producer distinguished by clientId will get throttled if it produces more bytes than this value per-second", "type": "string", "default": "9223372036854775807"}, "replica_fetch_max_bytes": {"title": "replica.fetch.max.bytes", "description": "The number of byes of messages to attempt to fetch", "type": "integer", "default": 1048576}, "replica_fetch_min_bytes": {"title": "replica.fetch.min.bytes", "description": "Minimum bytes expected for each fetch response. If not enough bytes, wait up to replicaMaxWaitTimeMs", "type": "integer", "default": 1}, "replica_fetch_wait_max_ms": {"title": "replica.fetch.wait.max.ms", "description": "Max wait time for each fetcher request issued by follower replicas. This value should always be less than the replica.lag.time.max.ms at all times to prevent frequent shrinking of ISR for low throughput topics", "type": "integer", "default": 500}, "replica_high_watermark_checkpoint_interval_ms": {"title": "replica.high.watermark.checkpoint.interval.ms", "description": "The frequency with which the high watermark is saved out to disk", "type": "integer", "default": 5000}, "replica_lag_time_max_ms": {"title": "replica.lag.time.max.ms", "description": "If a follower hasn't sent any fetch requests or hasn't consumed up to the leaders log end offset for at least this time, the leader will remove the follower from isr", "type": "integer", "default": 10000}, "replica_socket_receive_buffer_bytes": {"title": "replica.socket.receive.buffer.bytes", "description": "The socket receive buffer for network requests", "type": "integer", "default": 65536}, "replica_socket_timeout_ms": {"title": "replica.socket.timeout.ms", "description": "The socket timeout for network requests. Its value should be at least replica.fetch.wait.max.ms", "type": "integer", "default": 30000}, "request_timeout_ms": {"title": "request.timeout.ms", "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.", "type": "integer", "default": 30000}, "socket_receive_buffer_bytes": {"title": "socket.receive.buffer.bytes", "description": "The SO_RCVBUF buffer of the socket sever sockets", "type": "integer", "default": 102400}, "socket_request_max_bytes": {"title": "socket.request.max.bytes", "description": "The maximum number of bytes in a socket request", "type": "integer", "default": 104857600}, "socket_send_buffer_bytes": {"title": "socket.send.buffer.bytes", "description": "The SO_SNDBUF buffer of the socket sever sockets", "type": "integer", "default": 102400}, "unclean_leader_election_enable": {"title": "unclean.leader.election.enable", "description": "Indicates whether to enable replicas not in the ISR set to be elected as leader as a last resort, even though doing so may result in data loss", "type": "boolean", "default": true}, "zookeeper_session_timeout_ms": {"title": "zookeeper.session.timeout.ms", "description": "Zookeeper session timeout", "type": "integer", "default": 6000}, "connections_max_idle_ms": {"title": "connections.max.idle.ms", "description": "Idle connections timeout: the server socket processor threads close the connections that idle more than this", "type": "integer", "default": 600000}, "controlled_shutdown_enable": {"title": "controlled.shutdown.enable", "description": "Enable controlled shutdown of the server", "type": "boolean", "default": true}, "controlled_shutdown_max_retries": {"title": "controlled.shutdown.max.retries", "description": "Controlled shutdown can fail for multiple reasons. This determines the number of retries when such failure happens", "type": "integer", "default": 3}, "controlled_shutdown_retry_backoff_ms": {"title": "controlled.shutdown.retry.backoff.ms", "description": "Before each retry, the system needs time to recover from the state that caused the previous failure (Controller fail over, replica lag etc). This config determines the amount of time to wait before retrying.", "type": "integer", "default": 5000}, "controller_socket_timeout_ms": {"title": "controller.socket.timeout.ms", "description": "The socket timeout for controller-to-broker channels", "type": "integer", "default": 30000}, "default_replication_factor": {"title": "default.replication.factor", "description": "Default replication factors for automatically created topics", "type": "integer", "default": 1}, "fetch_purgatory_purge_interval_requests": {"title": "fetch.purgatory.purge.interval.requests", "description": "The purge interval (in number of requests) of the fetch request purgatory", "type": "integer", "default": 1000}, "group_max_session_timeout_ms": {"title": "group.max.session.timeout.ms", "description": "The maximum allowed session timeout for registered consumers", "type": "integer", "default": 300000}, "group_min_session_timeout_ms": {"title": "group.min.session.timeout.ms", "description": "The minimum allowed session timeout for registered consumers", "type": "integer", "default": 6000}, "inter_broker_protocol_version": {"type": "string", "title": "inter.broker.protocol.version", "description": "Specify which version of the inter-broker protocol will be used, which must align with log.message.format.version. This is typically bumped after all brokers were upgraded to a new version. Example of some valid values are: 0.8.0, 0.8.1, 0.8.1.1, 0.8.2, 0.8.2.0, 0.8.2.1, 0.9.0.0, 0.9.0.1, 0.10.0.0. Check ApiVersion for the full list.", "default": "0.10.0.0"}, "log_message_format_version": {"type": "string", "title": "log.message.format.version", "description": "Specify which version of the log message format will be used, which must align with inter.broker.protocol.version. This is a new setting as of 0.10.0.0, and should be left at 0.9.0 until clients are updated to 0.10.0.x. Clients on earlier versions may see a performance penalty if this is increased before they've upgraded. See the latest Kafka documentation for details.", "default": "0.10.0"}, "log_cleaner_backoff_ms": {"title": "log.cleaner.backoff.ms", "description": "The amount of time to sleep when there are no logs to clean", "type": "integer", "default": 15000}, "log_cleaner_dedupe_buffer_size": {"title": "log.cleaner.dedupe.buffer.size", "description": "The total memory used for log deduplication across all cleaner threads", "type": "integer", "default": 134217728}, "log_cleaner_delete_retention_ms": {"title": "log.cleaner.delete.retention.ms", "description": "How long are delete records retained?", "type": "integer", "default": 86400000}, "log_cleaner_enable": {"title": "log.cleaner.enable", "description": "Enable the log cleaner process to run on the server? Should be enabled if using any topics with a cleanup.policy=compact including the internal offsets topic. If disabled those topics will not be compacted and continually grow in size.", "type": "boolean", "default": true}, "log_cleaner_io_buffer_load_factor": {"title": "log.cleaner.io.buffer.load.factor", "description": "Log cleaner dedupe buffer load factor. The percentage full the dedupe buffer can become. A higher value will allow more log to be cleaned at once but will lead to more hash collisions", "type": "number", "default": 0.9}, "log_cleaner_io_buffer_size": {"title": "log.cleaner.io.buffer.size", "description": "The total memory used for log cleaner I/O buffers across all cleaner threads", "type": "integer", "default": 524288}, "log_cleaner_io_max_bytes_per_second": {"title": "log.cleaner.io.max.bytes.per.second", "description": "The log cleaner will be throttled so that the sum of its read and write i/o will be less than this value on average", "type": "number", "default": 1.7976931348623157e+308}, "log_cleaner_min_cleanable_ratio": {"title": "log.cleaner.min.cleanable.ratio", "description": "The minimum ratio of dirty log to total log for a log to eligible for cleaning", "type": "number", "default": 0.5}, "log_cleaner_threads": {"title": "log.cleaner.threads", "description": "The number of background threads to use for log cleaning", "type": "integer", "default": 1}, "log_cleanup_policy": {"type": "string", "title": "log.cleanup.policy", "description": "The default cleanup policy for segments beyond the retention window, must be either 'delete' or 'compact'", "default": "delete"}, "log_index_interval_bytes": {"title": "log.index.interval.bytes", "description": "The interval with which we add an entry to the offset index", "type": "integer", "default": 4096}, "log_index_size_max_bytes": {"title": "log.index.size.max.bytes", "description": "The maximum size in bytes of the offset index", "type": "integer", "default": 10485760}, "log_preallocate": {"title": "log.preallocate", "description": "Should pre allocate file when create new segment? If you are using Kafka on Windows, you probably need to set it to true.", "type": "boolean", "default": false}, "log_retention_check_interval_ms": {"title": "log.retention.check.interval.ms", "description": "The frequency in milliseconds that the log cleaner checks whether any log is eligible for deletion", "type": "integer", "default": 300000}, "max_connections_per_ip": {"title": "max.connections.per.ip", "description": "mum number of connections we allow from each ip address", "type": "integer", "default": 2147483647}, "max_connections_per_ip_overrides": {"type": "string", "title": "max.connections.per.ip.overrides", "description": "Per-ip or hostname overrides to the default maximum number of connections", "default": ""}, "num_partitions": {"title": "num.partitions", "description": "The default number of log partitions per topic", "type": "integer", "default": 1}, "producer_purgatory_purge_interval_requests": {"title": "producer.purgatory.purge.interval.requests", "description": "The purge interval (in number of requests) of the producer request purgatory", "type": "integer", "default": 1000}, "replica_fetch_backoff_ms": {"title": "replica.fetch.backoff.ms", "description": "The amount of time to sleep when fetch partition error occurs.", "type": "integer", "default": 1000}, "reserved_broker_max_id": {"title": "reserved.broker.max.id", "description": "Max number that can be used for a broker.id", "type": "integer", "default": 1000}, "metrics_num_samples": {"title": "metrics.num.samples", "description": "The number of samples maintained to compute metrics.", "type": "integer", "default": 2}, "metrics_sample_window_ms": {"title": "metrics.sample.window.ms", "description": "The number of samples maintained to compute metrics.", "type": "integer", "default": 30000}, "quota_window_num": {"title": "quota.window.num", "description": "The number of samples to retain in memory", "type": "integer", "default": 11}, "quota_window_size_seconds": {"title": "quota.window.size.seconds", "description": "The time span of each sample", "type": "integer", "default": 1}, "zookeeper_sync_time_ms": {"title": "zookeeper.sync.time.ms", "description": "How far a ZK follower can be behind a ZK leader", "type": "integer", "default": 2000}}}}}, "version": "1.1.12-3.0.1", "postInstallNotes": "Apache Kafka by Confluent is being installed.", "framework": true, "description": "Apache Kafka by Confluent"}, {"packagingVersion": "3.0", "tags": ["mesosphere", "enterprise", "subcommand"], "maintainer": "support@mesosphere.io", "command": null, "releaseVersion": 4, "minDcosReleaseVersion": "1.8", "version": "1.0.3", "description": "Enterprise DC/OS CLI", "name": "dcos-enterprise-cli", "resource": {"assets": {"uris": {}}, "cli": {"binaries": {"darwin": {"x86-64": {"kind": "zip", "url": "https://downloads.mesosphere.io/cli/binaries/darwin/x86-64/1.0.3/c2b565dc19c4f4e5146238d8e2f7dffb8a579b7d7433b6a337e690ad1598d2b6/dcos-enterprise-cli", "contentHash": [{"value": "c2b565dc19c4f4e5146238d8e2f7dffb8a579b7d7433b6a337e690ad1598d2b6", "algo": "sha256"}]}}, "linux": {"x86-64": {"kind": "zip", "url": "https://downloads.mesosphere.io/cli/binaries/linux/x86-64/1.0.3/14f1155ecfff8ac003340a6551bacbb50802436123b868159b3b6f76356824bb/dcos-enterprise-cli", "contentHash": [{"value": "14f1155ecfff8ac003340a6551bacbb50802436123b868159b3b6f76356824bb", "algo": "sha256"}]}}}}}}, {"tags": ["elastic", "monitoring", "debug"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e2VsYXN0aWNzZWFyY2guZnJhbWV3b3JrLW5hbWV9fSIsCiAgImNwdXMiOiB7e2VsYXN0aWNzZWFyY2guc2NoZWR1bGVyLmNwdX19LAogICJtZW0iOiB7e2VsYXN0aWNzZWFyY2guc2NoZWR1bGVyLnJhbX19LAogICJwb3J0cyI6IFswXSwKICAiaW5zdGFuY2VzIjoge3tlbGFzdGljc2VhcmNoLnNjaGVkdWxlci5pbnN0YW5jZXN9fSwKICAiaGVhbHRoQ2hlY2tzIjogWwogICAgewogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMTIwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogMzAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMCwKICAgICAgInBhdGgiOiAiLyIsCiAgICAgICJwb3J0SW5kZXgiOiAwLAogICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDUKICAgIH0KICBdLAogICJhcmdzIjogWwogICAgIi0tem9va2VlcGVyTWVzb3NVcmwiLCAie3ttZXNvcy5tYXN0ZXJ9fSIsCiAgICAiLS16b29rZWVwZXJNZXNvc1RpbWVvdXQiLCAie3tlbGFzdGljc2VhcmNoLnpvb2tlZXBlci1tZXNvcy10aW1lb3V0fX0iLAogICAgIi0td2ViVWlQb3J0IiwgInt7ZWxhc3RpY3NlYXJjaC5wb3J0fX0iLAogICAgIi0tZnJhbWV3b3JrRmFpbG92ZXJUaW1lb3V0IiwgInt7ZWxhc3RpY3NlYXJjaC5mYWlsb3Zlci10aW1lb3V0fX0iLAogICAgIi0tZnJhbWV3b3JrTmFtZSIsICJ7e2VsYXN0aWNzZWFyY2guZnJhbWV3b3JrLW5hbWV9fSIsCgogICAgIi0tZWxhc3RpY3NlYXJjaE5vZGVzIiwgInt7ZWxhc3RpY3NlYXJjaC5leGVjdXRvci5pbnN0YW5jZXN9fSIsCiAgICAiLS1lbGFzdGljc2VhcmNoQ2x1c3Rlck5hbWUiLCAie3tlbGFzdGljc2VhcmNoLmV4ZWN1dG9yLmNsdXN0ZXItbmFtZX19IiwKICAgICItLWVsYXN0aWNzZWFyY2hDcHUiLCAie3tlbGFzdGljc2VhcmNoLmV4ZWN1dG9yLmNwdX19IiwKICAgICItLWVsYXN0aWNzZWFyY2hEaXNrIiwgInt7ZWxhc3RpY3NlYXJjaC5leGVjdXRvci5kaXNrfX0iLAogICAgIi0tZWxhc3RpY3NlYXJjaFJhbSIsICJ7e2VsYXN0aWNzZWFyY2guZXhlY3V0b3IucmFtfX0iLAogICAge3sjZWxhc3RpY3NlYXJjaC5leGVjdXRvci5zZXR0aW5ncy1sb2NhdGlvbn19CiAgICAiLS1lbGFzdGljc2VhcmNoU2V0dGluZ3NMb2NhdGlvbiIsICJ7e2VsYXN0aWNzZWFyY2guZXhlY3V0b3Iuc2V0dGluZ3MtbG9jYXRpb259fSIsCiAgICB7ey9lbGFzdGljc2VhcmNoLmV4ZWN1dG9yLnNldHRpbmdzLWxvY2F0aW9ufX0KCiAgICAiLS1leGVjdXRvckZvcmNlUHVsbEltYWdlIiwgInt7ZWxhc3RpY3NlYXJjaC5mb3JjZS1wdWxsLWltYWdlfX0iLAogICAgIi0tZXhlY3V0b3JOYW1lIiwgInt7ZWxhc3RpY3NlYXJjaC5leGVjdXRvci5uYW1lfX0iCiAgXSwKICAiZW52IjogewogICAgIkpBVkFfT1BUUyI6ICJ7e2VsYXN0aWNzZWFyY2guc2NoZWR1bGVyLmphdmEtaGVhcH19IgogIH0sCiAgImNvbnRhaW5lciI6IHsKICAgICJ0eXBlIjogIkRPQ0tFUiIsCiAgICAiZG9ja2VyIjogewogICAgICAiaW1hZ2UiOiAie3tyZXNvdXJjZS5hc3NldHMuY29udGFpbmVyLmRvY2tlci5lbGFzdGljc2VhcmNoLXNjaGVkdWxlcn19IiwKICAgICAgIm5ldHdvcmsiOiAiSE9TVCIsCiAgICAgICJmb3JjZVB1bGxJbWFnZSI6IHt7ZWxhc3RpY3NlYXJjaC5mb3JjZS1wdWxsLWltYWdlfX0KICAgIH0KICB9LAogICJwb3J0cyI6IFt7e2VsYXN0aWNzZWFyY2gucG9ydH19XSwKICAicmVxdWlyZVBvcnRzIjogdHJ1ZSwKICAibGFiZWxzIjogewogICAgIkRDT1NfUEFDS0FHRV9GUkFNRVdPUktfTkFNRSI6ICJ7e2VsYXN0aWNzZWFyY2guZnJhbWV3b3JrLW5hbWV9fSIKICB9Cn0K"}, "command": null, "scm": "https://github.com/mesos/elasticsearch.git", "preInstallNotes": "The ElasticSearch DCOS Service implementation is alpha and there may be bugs, incomplete features, incorrect documentation or other discrepancies.", "description": "DCOS implementation of the Mesos-Elasticsearch framework", "resource": {"images": {"icon-small": "http://master.mesos:8082/elasticsearch/images/icon-service-elasticsearch-small.png", "icon-medium": "http://master.mesos:8082/elasticsearch/images/icon-service-elasticsearch-medium.png", "icon-large": "http://master.mesos:8082/elasticsearch/images/icon-service-elasticsearch-large.png"}, "assets": {"uris": {}, "container": {"docker": {"elasticsearch-scheduler": "master.mesos:5000/mesos/elasticsearch-scheduler:1.0.1"}}}}, "website": "https://github.com/mesos/elasticsearch", "packagingVersion": "3.0", "maintainer": "pnw@trifork.com", "releaseVersion": 1, "config": {"properties": {"mesos": {"description": "Mesos specific configuration properties", "properties": {"master": {"default": "zk://master.mesos:2181/mesos", "description": "The URL of the Mesos master. This should point to the Mesos ZNode on the Zookeeper machine.", "type": "string"}}, "required": ["master"], "type": "object"}, "elasticsearch": {"description": "Elasticsearch specific configuration properties", "properties": {"framework-name": {"default": "elasticsearch", "description": "The framework name.", "type": "string"}, "failover-timeout": {"default": "2592000.0", "description": "The time before Mesos kills a scheduler and tasks if it has not recovered (ms).", "type": "string"}, "zookeeper-mesos-timeout": {"default": "20000", "description": "The timeout for connecting to zookeeper for Mesos (ms).", "type": "string"}, "port": {"default": "31105", "description": "The port number of the ES-Mesos management front-end. Defaults to 8080.", "type": "string"}, "force-pull-image": {"default": false, "description": "Forces docker to re-pull the image.", "type": "boolean"}, "executor": {"properties": {"ram": {"default": "2048", "description": "The amount of ram that Mesos shall give give to the executors.", "type": "string"}, "cpu": {"default": "1.0", "description": "The amount of CPU resource to allocate to the elasticsearch instance.", "type": "string"}, "disk": {"default": "1024", "description": "The amount of Disk resource to allocate to the elasticsearch instance (MB).", "type": "string"}, "instances": {"default": "3", "description": "The number of elasticsearch nodes to be instantiated. It is recommended that you provide an odd number, to prevent split brain issues.", "type": "string"}, "cluster-name": {"default": "mesos-ha", "description": "Name of the elasticsearch cluster", "type": "string"}, "name": {"default": "elasticsearch-executor", "description": "The name given to the executor task.", "type": "string"}}, "required": ["ram", "cpu", "disk", "instances", "cluster-name", "name"], "type": "object"}, "scheduler": {"properties": {"cpu": {"default": "0.2", "description": "The amount of CPU that Mesos shall allocate to the scheduler.", "type": "string"}, "ram": {"default": "512", "description": "The amount of RAM that Mesos shall allocate to the scheduler.", "type": "string"}, "instances": {"default": "1", "description": "The number of scheduler instances.", "type": "string"}, "java-heap": {"default": "-Xms128m -Xmx256m", "description": "The java heap space environmental variables to pass to the scheduler", "type": "string"}}, "required": ["cpu", "ram", "instances", "java-heap"], "type": "object"}}, "required": ["framework-name", "failover-timeout", "zookeeper-mesos-timeout", "port", "force-pull-image", "executor", "scheduler"], "type": "object"}}, "required": ["mesos", "elasticsearch"]}, "version": "1.0.1", "postInstallNotes": "Elasticsearch is staging. Check Marathon and the ES management front-end for status.", "framework": true, "licenses": [{"url": "https://raw.githubusercontent.com/mesos/elasticsearch/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "elasticsearch"}, {"tags": ["consensus", "distributed-coordination", "coordination"], "marathon": {"v2AppMustacheTemplate": "ewogICAgImlkIjogInt7ZXRjZC5mcmFtZXdvcmstbmFtZX19IiwKICAgICJjb250YWluZXIiOiB7CiAgICAgICAgImRvY2tlciI6IHsKICAgICAgICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuZXRjZC1kb2NrZXJ9fSIsCiAgICAgICAgICAgICJuZXR3b3JrIjogIkhPU1QiLAogICAgICAgICAgICAiZm9yY2VQdWxsSW1hZ2UiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAidHlwZSI6ICJET0NLRVIiLAogICAgICAgICJ2b2x1bWVzIjogW10KICAgIH0sCiAgICAiYXJncyI6IFtdLAogICAgImNwdXMiOiB7e2V0Y2QuY3B1c319LAogICAgIm1lbSI6IHt7ZXRjZC5tZW19fSwKICAgICJpbnN0YW5jZXMiOiAxLAogICAgInBvcnRzIjogWzAsIDAsIDBdLAogICAgImVudiI6IHsKICAgICAgIkZSQU1FV09SS19OQU1FIjoie3tldGNkLmZyYW1ld29yay1uYW1lfX0iLAogICAgICAiQ0xVU1RFUl9TSVpFIjoie3tldGNkLmNsdXN0ZXItc2l6ZX19IiwKICAgICAgIk1FU09TX01BU1RFUiI6Int7bWVzb3MubWFzdGVyfX0iLAogICAgICAiWktfUEVSU0lTVCI6Int7ZXRjZC56a319IiwKICAgICAgIlZFUkJPU0lUWSI6Int7ZXRjZC5sb2dnaW5nLXZlcmJvc2l0eX19IiwKICAgICAgIkFVVE9fUkVTRUVEIjoie3tldGNkLmF1dG8tcmVzZWVkfX0iLAogICAgICAiUkVTRUVEX1RJTUVPVVQiOiJ7e2V0Y2QucmVzZWVkLXRpbWVvdXR9fSIsCiAgICAgICJESVNLX0xJTUlUIjoie3tldGNkLmRpc2stbGltaXR9fSIsCiAgICAgICJDUFVfTElNSVQiOiJ7e2V0Y2QuY3B1LWxpbWl0fX0iLAogICAgICAiTUVNX0xJTUlUIjoie3tldGNkLm1lbS1saW1pdH19IiwKICAgICAgIldFQlVSSSI6ICJodHRwOi8ve3tldGNkLmZyYW1ld29yay1uYW1lfX17e2V0Y2QuZG5zLXN1ZmZpeH19Ont7ZXRjZC5hZG1pbi1wb3J0fX0vc3RhdHMiCiAgICB9LAogICAgImhlYWx0aENoZWNrcyI6IFt7CiAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgInBhdGgiOiAiL2hlYWx0aHoiLAogICAgICAicG9ydEluZGV4IjogMCwKICAgICAgImdyYWNlUGVyaW9kU2Vjb25kcyI6IDYwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogMzAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMAogICAgfV0sCiAgImxhYmVscyI6IHsKICAgICJEQ09TX1BBQ0tBR0VfRlJBTUVXT1JLX05BTUUiOiAie3tldGNkLmZyYW1ld29yay1uYW1lfX0iCiAgfQp9Cg=="}, "command": null, "scm": "https://github.com/mesosphere/etcd-mesos", "preInstallNotes": "In order for etcd to start successfully all resources must be available in the cluster including ports, CPU shares and RAM.\nWe recommend a minimum of 3 nodes with 1 CPU share and 128 MB of RAM available for use by the etcd service.\nNote that the service is alpha and there may be bugs, including possible data loss, incomplete features, incorrect documentation or other discrepancies.", "resource": {"images": {"icon-small": "http://master.mesos:8082/etcd/images/icon-service-etcd-small.png", "icon-medium": "http://master.mesos:8082/etcd/images/icon-service-etcd-medium.png", "icon-large": "http://master.mesos:8082/etcd/images/icon-service-etcd-large.png"}, "assets": {"uris": {}, "container": {"docker": {"etcd-docker": "master.mesos:5000/mesosphere/etcd-mesos:0.1.3"}}}}, "name": "etcd", "packagingVersion": "2.0", "maintainer": "support@mesosphere.io", "releaseVersion": 1, "config": {"properties": {"etcd": {"description": "etcd specific configuration properties", "properties": {"dns-suffix": {"default": ".marathon.mesos", "description": "This value is appended to the framework-name value to form the canonical DNS name for the etcd components.", "type": "string", "pattern": "^(?:\\.[a-z][a-z0-9]*?(?:-[a-z0-9]+)*)+$"}, "framework-name": {"default": "etcd", "description": "The framework name to register with Mesos.", "type": "string", "pattern": "^/?(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$"}, "admin-port": {"default": "$PORT0", "description": "Admin port that the etcd framework listens on.", "type": "string"}, "cpus": {"default": 0.2, "description": "CPU shares to allocate to the etcd framework.", "minimum": 0.01, "type": "number"}, "mem": {"default": 128.0, "description": "Memory (MB) to allocate to the etcd framework.", "minimum": 32.0, "type": "number"}, "reseed-timeout": {"default": 240, "description": "The reseed-timeout in seconds.", "minimum": 0, "type": "integer"}, "auto-reseed": {"default": true, "description": "Enable auto reseeding of the etcd cluster.", "type": "boolean"}, "cpu-limit": {"default": 1, "description": "The CPU shares for each etcd instance.", "minimum": 0.01, "type": "number"}, "mem-limit": {"default": 2048, "description": "Memory limit (MB) for each etcd instance.", "minimum": 32, "type": "integer"}, "disk-limit": {"default": 4096, "description": "Disk limit (MB) for each etcd instance.", "minimum": 1, "type": "integer"}, "cluster-size": {"default": 3, "description": "The number of nodes in the etcd cluster.", "minimum": 1, "type": "integer"}, "logging-verbosity": {"default": 1, "description": "Increase this value to obtain more detailed log messages.", "type": "integer", "minimum": 0}, "zk": {"default": "zk://master.mesos:2181/etcd", "description": "The URL of Zookeeper to be used to persist etcd framework data. The format is a comma-delimited list of hosts like zk://host1:port,host2:port/zk, including the trailing path.", "type": "string"}}, "required": ["dns-suffix", "framework-name", "admin-port", "cpus", "mem", "reseed-timeout", "auto-reseed", "cpu-limit", "mem-limit", "disk-limit", "cluster-size", "logging-verbosity", "zk"], "type": "object"}, "mesos": {"description": "Mesos specific configuration properties", "properties": {"master": {"default": "zk://master.mesos:2181/mesos", "description": "The URL of the Mesos master. The format is a comma-delimited list of hosts like zk://host1:port,host2:port/mesos. If using ZooKeeper, pay particular attention to the leading zk:// and trailing /mesos! If not using ZooKeeper, standard host:port patterns, like localhost:5050 or 10.0.0.5:5050,10.0.0.6:5050, are also acceptable.", "type": "string"}}, "required": ["master"], "type": "object"}}, "required": ["etcd", "mesos"], "type": "object"}, "version": "0.0.3", "postInstallNotes": "Once the cluster initializes (<1 minute if offers are available), etcd proxies may connect by passing the argument -discovery-srv=etcd.mesos (or -discovery-srv=<framework-name>.mesos if you're not using the default), and you may discover live members by querying SRV records for _etcd-server._tcp.<framework-name>.mesos", "framework": true, "description": "A distributed consistent key-value store for shared configuration and service discovery."}, {"tags": ["filesystem", "hadoop", "analytics"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICIve3tzZXJ2aWNlLm5hbWV9fSIsCiAgImNtZCI6ICIuL3NjaGVkdWxlci9iaW4vaGRmcy1zY2hlZHVsZXIgc2VydmVyIC4vc2NoZWR1bGVyL2NvbmYvc2NoZWR1bGVyLnltbCIsCiAgInVzZXIiOiAibm9ib2R5IiwKICAiaW5zdGFuY2VzIjogMSwKICAiY3B1cyI6IHt7c2VydmljZS5jcHVzfX0sCiAgIm1lbSI6IHt7c2VydmljZS5tZW19fSwKICAicmVxdWlyZVBvcnRzIjogdHJ1ZSwKICAicG9ydERlZmluaXRpb25zIjogWwogICAgewogICAgICAicG9ydCI6IHt7c2VydmljZS5hcGlfcG9ydH19LAogICAgICAicHJvdG9jb2wiOiAidGNwIiwKICAgICAgIm5hbWUiOiAiYXBpIiwKICAgICAgImxhYmVscyI6IHt9CiAgICB9CiAgXSwKInVyaXMiOiBbCiAgInt7cmVzb3VyY2UuYXNzZXRzLnVyaXMuc2NoZWR1bGVyLXppcH19IiwKICAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5qcmUtdGFyLWd6fX0iCl0sCiJoZWFsdGhDaGVja3MiOiBbCiAgICB7CiAgICAgICJwcm90b2NvbCI6ICJDT01NQU5EIiwKICAgICAgImNvbW1hbmQiOiB7ICJ2YWx1ZSI6ICJjdXJsIC1mIC1YIEdFVCBodHRwOi8vJEhPU1Q6e3tzZXJ2aWNlLmFwaV9wb3J0fX0vYWRtaW4vaGVhbHRoY2hlY2siIH0sCiAgICAgICJncmFjZVBlcmlvZFNlY29uZHMiOiAzMDAsCiAgICAgICJpbnRlcnZhbFNlY29uZHMiOiA2MCwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogNjAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMwogICAgfQpdLAoicmVhZGluZXNzQ2hlY2tzIjogWwogICAgewogICAgICAibmFtZSI6ICJoZGZzVXBkYXRlUHJvZ3Jlc3MiLAogICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICJwYXRoIjogIi92MS9wbGFuIiwKICAgICAgInBvcnROYW1lIjogImFwaSIsCiAgICAgICJpbnRlcnZhbCI6IDEwMDAwLAogICAgICAidGltZW91dCI6IDEwMDAwLAogICAgICAiaHR0cFN0YXR1c0NvZGVzRm9yUmVhZHkiOiBbMjAwXSwKICAgICAgInByZXNlcnZlTGFzdFJlc3BvbnNlIjogdHJ1ZQogICAgfQpdLAoibGFiZWxzIjogewogICJEQ09TX1BBQ0tBR0VfRlJBTUVXT1JLX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgIkRDT1NfTUlHUkFUSU9OX0FQSV9WRVJTSU9OIjogInYxIiwKICAiRENPU19NSUdSQVRJT05fQVBJX1BBVEgiOiAiL3YxL3BsYW4iLAogICJNQVJBVEhPTl9TSU5HTEVfSU5TVEFOQ0VfQVBQIjoidHJ1ZSIKfSwKInVwZ3JhZGVTdHJhdGVneSI6ewogICJtaW5pbXVtSGVhbHRoQ2FwYWNpdHkiOiAwLAogICJtYXhpbXVtT3ZlckNhcGFjaXR5IjogMAp9LAp7eyNzZXJ2aWNlLnNlY3JldF9uYW1lfX0KInNlY3JldHMiOiB7CiAgInNlcnZpY2VDcmVkZW50aWFsIjogewogICAgInNvdXJjZSI6ICJ7e3NlcnZpY2Uuc2VjcmV0X25hbWV9fSIKICB9Cn0sCnt7L3NlcnZpY2Uuc2VjcmV0X25hbWV9fQoiZW52Ijp7Cnt7I3NlcnZpY2Uuc2VjcmV0X25hbWV9fQoiRENPU19TRVJWSUNFX0FDQ09VTlRfQ1JFREVOVElBTCI6IHsgInNlY3JldCI6ICJzZXJ2aWNlQ3JlZGVudGlhbCIgfSwKIk1FU09TX01PRFVMRVMiOiAiZmlsZTovLy9vcHQvbWVzb3NwaGVyZS9ldGMvbWVzb3Mtc2NoZWR1bGVyLW1vZHVsZXMvZGNvc19hdXRoZW50aWNhdGVlX21vZHVsZS5qc29uIiwKIk1FU09TX0FVVEhFTlRJQ0FURUUiOiAiY29tX21lc29zcGhlcmVfZGNvc19DbGFzc2ljUlBDQXV0aGVudGljYXRlZSIsCiJTU0xfQ0VSVF9GSUxFIjogIi9ydW4vZGNvcy9wa2kvdGxzL2NlcnRzL3NjaGVkdWxlci5jcnQiLAoiU1NMX0tFWV9GSUxFIjogIi9ydW4vZGNvcy9wa2kvdGxzL3ByaXZhdGUvc2NoZWR1bGVyLmtleSIsCiJTU0xfQ0FfRklMRSI6ICIvcnVuL2Rjb3MvcGtpL0NBL2NlcnRzL2NhLmNydCIsCiJTU0xfRU5BQkxFRCI6ICJ0cnVlIiwKe3svc2VydmljZS5zZWNyZXRfbmFtZX19CiJKQVZBX0hPTUUiOiIuL2pyZTEuOC4wXzkxIgosIkpBVkFfT1BUUyI6Ii1YbXh7e3NlcnZpY2UuaGVhcH19TSIKLCJTRVJWSUNFX05BTUUiOiJ7e3NlcnZpY2UubmFtZX19IgosIlNFUlZJQ0VfUk9MRSI6Int7c2VydmljZS5yb2xlfX0iCiwiU0VSVklDRV9QUklOQ0lQQUwiOiJ7e3NlcnZpY2UucHJpbmNpcGFsfX0iCiwiU0VSVklDRV9VU0VSIjoibm9ib2R5IgosIkhERlNfTkFNRV9OT0RFX0NQVVMiOiJ7e25hbWVfbm9kZS5jcHVzfX0iCiwiSERGU19OQU1FX01FTU9SWV9NQiI6Int7bmFtZV9ub2RlLm1lbX19IgosIkhERlNfTkFNRV9OT0RFX0hFQVBfTUIiOiJ7e25hbWVfbm9kZS5oZWFwfX0iCiwiSERGU19OQU1FX05PREVfRElTS19NQiI6Int7bmFtZV9ub2RlLmRpc2t9fSIKLCJIREZTX05BTUVfTk9ERV9ESVNLX1RZUEUiOiJ7e25hbWVfbm9kZS5kaXNrX3R5cGV9fSIKLCJIREZTX0pPVVJOQUxfTk9ERV9DUFVTIjoie3tqb3VybmFsX25vZGUuY3B1c319IgosIkhERlNfSk9VUk5BTF9NRU1PUllfTUIiOiJ7e2pvdXJuYWxfbm9kZS5tZW19fSIKLCJIREZTX0pPVVJOQUxfTk9ERV9IRUFQX01CIjoie3tqb3VybmFsX25vZGUuaGVhcH19IgosIkhERlNfSk9VUk5BTF9OT0RFX0RJU0tfTUIiOiJ7e2pvdXJuYWxfbm9kZS5kaXNrfX0iCiwiSERGU19KT1VSTkFMX05PREVfRElTS19UWVBFIjoie3tqb3VybmFsX25vZGUuZGlza190eXBlfX0iCiwiSERGU19KT1VSTkFMX05PREVTIjoie3tqb3VybmFsX25vZGUuY291bnR9fSIKLCJIREZTX0RBVEFfTk9ERV9DUFVTIjoie3tkYXRhX25vZGUuY3B1c319IgosIkhERlNfREFUQV9NRU1PUllfTUIiOiJ7e2RhdGFfbm9kZS5tZW19fSIKLCJIREZTX0RBVEFfTk9ERV9IRUFQX01CIjoie3tkYXRhX25vZGUuaGVhcH19IgosIkhERlNfREFUQV9OT0RFX0RJU0tfTUIiOiJ7e2RhdGFfbm9kZS5kaXNrfX0iCiwiSERGU19EQVRBX05PREVfRElTS19UWVBFIjoie3tkYXRhX25vZGUuZGlza190eXBlfX0iCiwiSERGU19EQVRBX05PREVTIjoie3tkYXRhX25vZGUuY291bnR9fSIKLCJFWEVDVVRPUl9DT01NQU5EIjoiLi9leGVjdXRvci9iaW4vaGRmcy1leGVjdXRvciBleGVjdXRvci9jb25mL2V4ZWN1dG9yLnltbCIKLCJFWEVDVVRPUl9DUFVTIjoie3tleGVjdXRvci5jcHVzfX0iCiwiRVhFQ1VUT1JfTUVNT1JZX01CIjoie3tleGVjdXRvci5tZW19fSIKLCJFWEVDVVRPUl9ESVNLX01CIjoie3tleGVjdXRvci5kaXNrfX0iCiwiRVhFQ1VUT1JfSEVBUF9NQiI6Int7ZXhlY3V0b3IuaGVhcH19IgosIkVYRUNVVE9SX0pBVkFfSE9NRSI6Ii4vanJlMS44LjBfOTEiCiwiRVhFQ1VUT1JfSERGU19IT01FIjoiLi9oYWRvb3AtMi42LjAtY2RoNS43LjEiCiwiRVhFQ1VUT1JfSlJFX0xPQ0FUSU9OIjoie3tyZXNvdXJjZS5hc3NldHMudXJpcy5qcmUtdGFyLWd6fX0iCiwiRVhFQ1VUT1JfTE9DQVRJT04iOiJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmV4ZWN1dG9yLXppcH19IgosIkVYRUNVVE9SX0hERlNfTE9DQVRJT04iOiJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmhhZG9vcC10YXItZ3p9fSIKLCJFWEVDVVRPUl9IREZTX1ZFUlNJT04iOiIyLjUuMCIKLCJIREZTX05BTUVfTk9ERV9SUENfUE9SVCI6Int7aGRmcy5uYW1lX25vZGVfcnBjX3BvcnR9fSIKLCJIREZTX05BTUVfTk9ERV9IVFRQX1BPUlQiOiJ7e2hkZnMubmFtZV9ub2RlX2h0dHBfcG9ydH19IgosIkhERlNfSk9VUk5BTF9OT0RFX1JQQ19QT1JUIjoie3toZGZzLmpvdXJuYWxfbm9kZV9ycGNfcG9ydH19IgosIkhERlNfSk9VUk5BTF9OT0RFX0hUVFBfUE9SVCI6Int7aGRmcy5qb3VybmFsX25vZGVfaHR0cF9wb3J0fX0iCiwiSERGU19EQVRBX05PREVfUlBDX1BPUlQiOiJ7e2hkZnMuZGF0YV9ub2RlX3JwY19wb3J0fX0iCiwiSERGU19EQVRBX05PREVfSFRUUF9QT1JUIjoie3toZGZzLmRhdGFfbm9kZV9odHRwX3BvcnR9fSIKLCJIREZTX0RBVEFfTk9ERV9JUENfUE9SVCI6Int7aGRmcy5kYXRhX25vZGVfaXBjX3BvcnR9fSIKLCJIREZTX1BFUk1JU1NJT05TX0VOQUJMRUQiOiJ7e2hkZnMucGVybWlzc2lvbnNfZW5hYmxlZH19IgosIkhERlNfTkFNRV9OT0RFX0hFQVJUQkVBVF9SRUNIRUNLX0lOVEVSVkFMIjoie3toZGZzLm5hbWVfbm9kZV9oZWFydGJlYXRfcmVjaGVja19pbnRlcnZhbH19IgosIkhERlNfQ09NUFJFU1NfSU1BR0UiOiJ7e2hkZnMuY29tcHJlc3NfaW1hZ2V9fSIKLCJIREZTX0lNQUdFX0NPTVBSRVNTSU9OX0NPREVDIjoie3toZGZzLmltYWdlX2NvbXByZXNzaW9uX2NvZGVjfX0iCiwiUExBQ0VNRU5UX1NUUkFURUdZIjoie3tzZXJ2aWNlLnBsYWNlbWVudF9zdHJhdGVneX19IgosIlBIQVNFX1NUUkFURUdZIjoib3JnLmFwYWNoZS5tZXNvcy5zY2hlZHVsZXIucGxhbi5EZWZhdWx0SW5zdGFsbFN0cmF0ZWd5IgosIkFQSV9QT1JUIjoie3tzZXJ2aWNlLmFwaV9wb3J0fX0iCn0KfQo="}, "command": {"pip": ["http://master.mesos:8082/hdfs/commands/dcos-hdfs-0.1.0.tar.gz"]}, "minDcosReleaseVersion": "1.7", "preInstallNotes": "In order for HDFS to start successfully, it requires a minimum of five nodes; each with at least 2 CPU shares and 8GB of RAM available for use by the HDFS Service.\nNote that the service is experimental and there may be bugs, including possible data loss, incomplete features, incorrect documentation or other discrepancies.", "description": "Hadoop Distributed File System (HDFS), Highly Available", "resource": {"images": {"icon-small": "http://master.mesos:8082/hdfs/images/icon-service-hdfs-small.png", "icon-medium": "http://master.mesos:8082/hdfs/images/icon-service-hdfs-medium.png", "icon-large": "http://master.mesos:8082/hdfs/images/icon-service-hdfs-large.png"}, "assets": {"uris": {"scheduler-zip": "http://master.mesos:8082/hdfs/uris/scheduler.zip", "jre-tar-gz": "http://master.mesos:8082/hdfs/uris/jre-8u91-linux-x64.tar.gz", "hadoop-tar-gz": "http://master.mesos:8082/hdfs/uris/hadoop-2.6.0-cdh5.7.1-dcos.tar.gz", "executor-zip": "http://master.mesos:8082/hdfs/uris/executor.zip"}}}, "packagingVersion": "3.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "DC/OS HDFS Service has been uninstalled.\nPlease follow the instructions at http://docs.mesosphere.com/services/hdfs/#uninstall to remove any persistent state if required.", "releaseVersion": 5, "config": {"$schema": "http://json-schema.org/draft-04/schema#", "id": "http://hdfs/dcos/mesosphere.com", "type": "object", "properties": {"service": {"id": "http://hdfs/dcos/mesosphere.com/service", "type": "object", "description": "DC/OS service configuration properties", "properties": {"name": {"id": "http://hdfs/dcos/mesosphere.com/service/name", "type": "string", "description": "The name of the HDFS service instance.", "default": "hdfs"}, "role": {"id": "http://hdfs/dcos/mesosphere.com/service/role", "type": "string", "description": "The role of the HDFS service instance.", "default": "hdfs-role"}, "principal": {"id": "http://hdfs/dcos/mesosphere.com/service/principal", "type": "string", "description": "The principal for the HDFS service instance.", "default": "hdfs-principal"}, "secret_name": {"type": "string", "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", "default": ""}, "cpus": {"id": "http://hdfs/dcos/mesosphere.com/service/cpus", "type": "number", "description": "The cpu shares used by the HDFS service scheduler.", "default": 0.5}, "mem": {"id": "http://hdfs/dcos/mesosphere.com/service/mem", "type": "integer", "description": "The memory used by the HDFS service scheduler in Mb.", "default": 2048}, "heap": {"id": "http://hdfs/dcos/mesosphere.com/service/heap", "type": "integer", "description": "The JVM heap used by the HDFS service scheduler in Mb.", "default": 1024}, "api_port": {"id": "http://hdfs/dcos/mesosphere.com/service/api_port", "type": "integer", "description": "The port that the HDFS service API will accept on.", "default": 9000}, "placement_strategy": {"id": "http://hdfs/dcos/mesosphere.com/service/placement_strategy", "type": "string", "description": "The placement strategy for HDFS nodes. This should always be NODE.", "default": "NODE"}}, "additionalProperties": false, "required": ["name", "role", "principal", "cpus", "mem", "heap", "api_port", "placement_strategy"]}, "name_node": {"id": "http://hdfs/dcos/mesosphere.com/name_node", "type": "object", "description": "HDFS Name Node configuration properties", "properties": {"cpus": {"id": "http://hdfs/dcos/mesosphere.com/name_node/cpus", "type": "number", "description": "The number of cpu shares allocated to the Name Node process.", "default": 0.5}, "mem": {"id": "http://hdfs/dcos/mesosphere.com/name_node/mem", "type": "integer", "description": "The amount of memory, in MB, allocated to the Name Node process.", "default": 4096}, "disk": {"id": "http://hdfs/dcos/mesosphere.com/name_node/disk", "type": "integer", "description": "The amount of disk, in MB, allocated to the Name Node process.", "default": 10240}, "disk_type": {"id": "http://hdfs/dcos/mesosphere.com/name_node/diskType", "type": "string", "description": "Disk type to be used for storing Name Node data. See documentation. [ROOT, MOUNT]", "default": "ROOT"}, "heap": {"id": "http://hdfs/dcos/mesosphere.com/name_node/heap", "type": "integer", "description": "The JVM heap used by the Name Node in Mb.", "default": 2048}}, "additionalProperties": false, "required": ["cpus", "mem", "disk", "heap"]}, "journal_node": {"id": "http://hdfs/dcos/mesosphere.com/journal_node", "type": "object", "description": "HDFS Journal Node configuration properties", "properties": {"cpus": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/cpus", "type": "number", "description": "The number of cpu shares allocated to the Journal Node process.", "default": 0.5}, "mem": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/mem", "type": "integer", "description": "The amount of memory, in MB, allocated to the Journal Node process.", "default": 4096}, "disk": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/disk", "type": "integer", "description": "The amount of disk, in MB, allocated to the Journal Node process.", "default": 10240}, "disk_type": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/diskType", "type": "string", "description": "Disk type to be used for storing Journal Node data. See documentation. [ROOT, MOUNT]", "default": "ROOT"}, "heap": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/heap", "type": "integer", "description": "The JVM heap used by the Journal Node in Mb.", "default": 2048}, "count": {"id": "http://hdfs/dcos/mesosphere.com/journal_node/count", "type": "integer", "description": "The number of Nodes in the Quorum Journal. This should be either 3 or 5.", "default": 3}}, "additionalProperties": false, "required": ["cpus", "mem", "disk", "heap", "count"]}, "data_node": {"id": "http://hdfs/dcos/mesosphere.com/data_node", "type": "object", "description": "HDFS Data Node configuration properties", "properties": {"cpus": {"id": "http://hdfs/dcos/mesosphere.com/data_node/cpus", "type": "number", "description": "The number of cpu shares allocated to the Data Node process.", "default": 0.5}, "mem": {"id": "http://hdfs/dcos/mesosphere.com/data_node/mem", "type": "integer", "description": "The amount of memory, in MB, allocated to the Data Node process.", "default": 4096}, "disk": {"id": "http://hdfs/dcos/mesosphere.com/data_node/disk", "type": "integer", "description": "The amount of disk, in MB, allocated to the Data Node process.", "default": 10240}, "disk_type": {"id": "http://hdfs/dcos/mesosphere.com/data_node/diskType", "type": "string", "description": "Disk type to be used for storing Data Node data. See documentation. [ROOT, MOUNT]", "default": "ROOT"}, "heap": {"id": "http://hdfs/dcos/mesosphere.com/data_node/heap", "type": "integer", "description": "The JVM heap used by the Data Node in Mb.", "default": 2048}, "count": {"id": "http://hdfs/dcos/mesosphere.com/data_node/count", "type": "integer", "description": "The number of Data Nodes in the cluster", "default": 3}}, "additionalProperties": false, "required": ["cpus", "mem", "disk", "heap", "count"]}, "executor": {"id": "http://hdfs/dcos/mesosphere.com/executor", "type": "object", "description": "The HDFS service executor configuration object.", "properties": {"cpus": {"id": "http://hdfs/dcos/mesosphere.com/executor/cpus", "type": "number", "description": "The cpu shares used by the HDFS service executor.", "default": 0.5}, "mem": {"id": "http://hdfs/dcos/mesosphere.com/executor/mem", "type": "integer", "description": "The memory used by the HDFS service executor in Mb.", "default": 1024}, "heap": {"id": "http://hdfs/dcos/mesosphere.com/executor/heap", "type": "integer", "description": "The JVM heap used by the HDFS service executor in Mb.", "default": 768}, "disk": {"id": "http://hdfs/dcos/mesosphere.com/executor/heap", "type": "integer", "description": "The amount of disk used by the HDFS service executor in Mb.", "default": 1024}}, "additionalProperties": false, "required": ["cpus", "mem", "heap", "disk"]}, "hdfs": {"type": "object", "id": "http://hdfs/dcos/mesosphere.com/hdfs", "description": "HDFS File System configuration options", "properties": {"name_node_rpc_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/name_node_rpc_port", "description": "The RPC port for HDFS Name Nodes.", "default": 9001}, "name_node_http_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/name_node_http_port", "description": "The HTTP port for HDFS Name Nodes. ", "default": 9002}, "journal_node_rpc_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/journal_node_rpc_port", "description": "The RPC port used by Journal Nodes.", "default": 8485}, "journal_node_http_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/journal_node_http_port", "description": "The HTTP port used by Journal Nodes.", "default": 8480}, "data_node_rpc_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/data_node_rpc_port", "description": "The RPC port used by Data Nodes.", "default": 9003}, "data_node_http_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/data_node_http_port", "description": "The HTTP port used by Data Nodes.", "default": 9004}, "data_node_ipc_port": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/data_node_ipc_port", "description": "The IPS port used by Data Nodes.", "default": 9005}, "permissions_enabled": {"type": "boolean", "id": "http://hdfs/dcos/mesosphere.com/hdfs/permissions_enabled", "description": "If true, permissions checking is enabled", "default": false}, "name_node_heartbeat_recheck_interval": {"type": "integer", "id": "http://hdfs/dcos/mesosphere.com/hdfs/name_node_heartbeat_recheck_interval", "description": "This time decides the interval to check for expired datanodes.", "default": 60000}, "compress_image": {"type": "boolean", "id": "http://hdfs/dcos/mesosphere.com/hdfs/compress_image", "description": "If true, the File System image will be compressed.", "default": true}, "image_compression_codec": {"type": "string", "id": "http://hdfs/dcos/mesosphere.com/hdfs/image_compression_codec", "description": "The image compression codec for the File System image.", "default": "org.apache.hadoop.io.compress.SnappyCodec"}}, "required": ["name_node_rpc_port", "name_node_http_port", "journal_node_rpc_port", "journal_node_http_port", "data_node_rpc_port", "data_node_http_port", "data_node_ipc_port", "permissions_enabled", "name_node_heartbeat_recheck_interval", "compress_image", "image_compression_codec"]}}, "additionalProperties": false, "required": ["service", "name_node", "journal_node", "data_node", "executor", "hdfs"]}, "version": "0.9.0-2.6.0", "postInstallNotes": "DC/OS HDFS Service is being installed.\n\n\tDocumentation: https://docs.mesosphere.com/1.7/usage/service-guides/hdfs/\n\tIssues: https://dcosjira.atlassian.net/projects/HDFS/issues", "framework": true, "licenses": [{"url": "https://www.apache.org/licenses/LICENSE-2.0", "name": "Apache License Version 2.0"}], "name": "hdfs"}, {"tags": ["continuous-integration", "ci", "jenkins"], "selected": true, "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAiY3B1cyI6IHt7c2VydmljZS5jcHVzfX0sCiAgIm1lbSI6IHt7c2VydmljZS5tZW19fSwKICAiaW5zdGFuY2VzIjogMSwKICAiZW52IjogewogICAgICAiSkVOS0lOU19BR0VOVF9ST0xFIjogInt7cm9sZXMuamVua2lucy1hZ2VudC1yb2xlfX0iLAogICAgICAiSkVOS0lOU19BR0VOVF9VU0VSIjogInt7I3NlY3VyaXR5LnN0cmljdC1tb2RlfX17e3NlY3VyaXR5LnN0cmljdC1tb2RlLXVzZXJ9fXt7L3NlY3VyaXR5LnN0cmljdC1tb2RlfX17e15zZWN1cml0eS5zdHJpY3QtbW9kZX19cm9vdHt7L3NlY3VyaXR5LnN0cmljdC1tb2RlfX0iLAogICAgICAiSkVOS0lOU19GUkFNRVdPUktfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICAgIkpFTktJTlNfQ09OVEVYVCI6ICIvc2VydmljZS97e3NlcnZpY2UubmFtZX19IiwKICAgICAgIkpFTktJTlNfTUVTT1NfTUFTVEVSIjogInt7YWR2YW5jZWQubWVzb3MtbWFzdGVyfX0iLAogICAgICB7eyNuZXR3b3JraW5nLnJvb3QtdXJsfX0KICAgICAgIkpFTktJTlNfUk9PVF9VUkwiOiAie3tuZXR3b3JraW5nLnJvb3QtdXJsfX0iLAogICAgICB7ey9uZXR3b3JraW5nLnJvb3QtdXJsfX0KICAgICAgIkpWTV9PUFRTIjogInt7YWR2YW5jZWQuanZtLW9wdHN9fSIsCiAgICAgICJKRU5LSU5TX09QVFMiOiAie3thZHZhbmNlZC5qZW5raW5zLW9wdHN9fSIsCiAgICAgICJMRF9MSUJSQVJZX1BBVEgiOiAiL29wdC9tZXNvc3BoZXJlL2xpYiIsCiAgICAgICJTU0hfS05PV05fSE9TVFMiOiAie3tuZXR3b3JraW5nLmtub3duLWhvc3RzfX0iCiAgfSwKICAicG9ydHMiOiBbMCwgMF0sCiAgImNvbnRhaW5lciI6IHsKICAgICAgICJ0eXBlIjogIkRPQ0tFUiIsCiAgICAgICAiZG9ja2VyIjogewogICAgICAge3sjYWR2YW5jZWQuZG9ja2VyLWltYWdlfX0KICAgICAgICAgICAiaW1hZ2UiOiAie3thZHZhbmNlZC5kb2NrZXItaW1hZ2V9fSIsCiAgICAgICB7ey9hZHZhbmNlZC5kb2NrZXItaW1hZ2V9fQogICAgICAge3teYWR2YW5jZWQuZG9ja2VyLWltYWdlfX0KICAgICAgICAgICAiaW1hZ2UiOiAie3tyZXNvdXJjZS5hc3NldHMuY29udGFpbmVyLmRvY2tlci5qZW5raW5zLTIwMS0yNzR9fSIsCiAgICAgICB7ey9hZHZhbmNlZC5kb2NrZXItaW1hZ2V9fQogICAgICAgICAgICJuZXR3b3JrIiA6ICJIT1NUIgogICAgICAgfSwKICAgICAgICJ2b2x1bWVzIjogWwogICAgICAgICAgIHsKICAgICAgICAgICAgICAgImNvbnRhaW5lclBhdGgiOiAiL3Zhci9qZW5raW5zX2hvbWUiLAogICAgICAgICAgICAgICAiaG9zdFBhdGgiOiAie3tzdG9yYWdlLmhvc3Qtdm9sdW1lfX0ve3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAgICAgICAgICAgICJtb2RlIjogIlJXIgogICAgICAgICAgIH0sCiAgICAgICAgICAgewogICAgICAgICAgICAgICAiY29udGFpbmVyUGF0aCI6ICIvb3B0L21lc29zcGhlcmUiLAogICAgICAgICAgICAgICAiaG9zdFBhdGgiOiAiL29wdC9tZXNvc3BoZXJlIiwKICAgICAgICAgICAgICAgIm1vZGUiOiAiUk8iCiAgICAgICAgICAgfQogICAgICAgXQogICB9LAogICB7eyNhZHZhbmNlZC5kb2NrZXItY3JlZGVudGlhbHMtdXJpfX0KICAgImZldGNoIjogWwogICAgICB7CiAgICAgICAgICAidXJpIjogInt7YWR2YW5jZWQuZG9ja2VyLWNyZWRlbnRpYWxzLXVyaX19IiwKICAgICAgICAgICJleGVjdXRhYmxlIjogZmFsc2UsCiAgICAgICAgICAiZXh0cmFjdCI6IHRydWUKICAgICAgfQogICBdLHt7L2FkdmFuY2VkLmRvY2tlci1jcmVkZW50aWFscy11cml9fQogICAiYWNjZXB0ZWRSZXNvdXJjZVJvbGVzIjogWyAie3tyb2xlcy5qZW5raW5zLW1hc3Rlci1yb2xlfX0iIF0sCiAgICJoZWFsdGhDaGVja3MiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIi9zZXJ2aWNlL3t7c2VydmljZS5uYW1lfX0iLAogICAgICAicG9ydEluZGV4IjogMCwKICAgICAgInByb3RvY29sIjogIkhUVFAiLAogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMzAsCiAgICAgICJpbnRlcnZhbFNlY29uZHMiOiA2MCwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogMjAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMwogICAgfQogIF0sCiAgImxhYmVscyI6IHsKICAgIHt7I25ldHdvcmtpbmcudmlydHVhbC1ob3N0fX0KICAgICJIQVBST1hZX0dST1VQIjoiZXh0ZXJuYWwiLAogICAgIkhBUFJPWFlfMF9WSE9TVCI6Int7bmV0d29ya2luZy52aXJ0dWFsLWhvc3R9fSIsCiAgICAiSEFQUk9YWV8wX1JFRElSRUNUX1RPX0hUVFBTIjogInt7bmV0d29ya2luZy5odHRwcy1yZWRpcmVjdH19IiwKICAgIHt7L25ldHdvcmtpbmcudmlydHVhbC1ob3N0fX0KICAgICJNQVJBVEhPTl9TSU5HTEVfSU5TVEFOQ0VfQVBQIjogInRydWUiLAogICAgIkRDT1NfUEFDS0FHRV9GUkFNRVdPUktfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICJEQ09TX1NFUlZJQ0VfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICJEQ09TX1NFUlZJQ0VfUE9SVF9JTkRFWCI6ICIwIiwKICAgICJEQ09TX1NFUlZJQ0VfU0NIRU1FIjogImh0dHAiCiAgfSwKICAidXBncmFkZVN0cmF0ZWd5Ijp7CiAgICAibWluaW11bUhlYWx0aENhcGFjaXR5IjogMCwKICAgICJtYXhpbXVtT3ZlckNhcGFjaXR5IjogMAogIH17eyNzdG9yYWdlLnBpbm5lZC1ob3N0bmFtZX19LAogICJjb25zdHJhaW50cyI6IFtbImhvc3RuYW1lIiwgIkNMVVNURVIiLCAie3tzdG9yYWdlLnBpbm5lZC1ob3N0bmFtZX19Il1dCiAge3svc3RvcmFnZS5waW5uZWQtaG9zdG5hbWV9fQp9Cg=="}, "command": null, "scm": "https://github.com/mesosphere/jenkins-dcos.git", "preInstallNotes": "WARNING: If you didn't provide a value for `host-volume` in the CLI,\nYOUR DATA WILL NOT BE SAVED IN ANY WAY.\n", "description": "Jenkins is an award-winning, cross-platform, continuous integration and continuous delivery application that increases your productivity. Use Jenkins to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. It also allows you to continuously deliver your software by providing powerful ways to define your build pipelines and integrating with a large number of testing and deployment technologies.", "resource": {"images": {"icon-small": "http://master.mesos:8082/jenkins/images/icon-service-jenkins-small.png", "icon-medium": "http://master.mesos:8082/jenkins/images/icon-service-jenkins-medium.png", "icon-large": "http://master.mesos:8082/jenkins/images/icon-service-jenkins-large.png"}, "assets": {"uris": {}, "container": {"docker": {"jenkins-201-274": "master.mesos:5000/mesosphere/jenkins:2.0.1-2.7.4"}}}}, "website": "https://jenkins.io", "packagingVersion": "2.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "Jenkins has been uninstalled. Note that any data persisted to a NFS share still exists and will need to be manually removed.", "releaseVersion": 13, "config": {"type": "object", "properties": {"service": {"description": "Configuration properties for the Jenkins service for DC/OS.", "type": "object", "properties": {"name": {"description": "The name of the service to display in the DC/OS dashboard.", "type": "string", "default": "jenkins"}, "cpus": {"description": "CPU shares to allocate to each Jenkins master.", "type": "number", "default": 1.0, "minimum": 0.1}, "mem": {"description": "Memory (in MB) to allocate to each Jenkins master.", "type": "number", "default": 2048.0, "minimum": 2048.0}}}, "storage": {"description": "Storage-related configuration properties for Jenkins on DC/OS.", "type": "object", "properties": {"host-volume": {"description": "The location of a volume on the host to be used for persisting Jenkins configuration and build data. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/jenkins`). Note that this path must be the same on all DC/OS agents.", "type": "string", "default": "/tmp"}, "pinned-hostname": {"description": "An optional DC/OS agent hostname to run this Jenkins instance on (e.g. 10.0.0.1).", "type": "string"}}}, "networking": {"description": "Networking-related configuration properties for Jenkins on DC/OS.", "type": "object", "properties": {"known-hosts": {"description": "A space-separated list of hosts used to populate the SSH known hosts file on the Jenkins master.", "type": "string", "default": "github.com"}, "virtual-host": {"description": "The virtual host address to configure for integration with Marathon-lb.", "type": "string"}, "https-redirect": {"description": "Whether Marathon-lb should redirect HTTP traffic to HTTPS. This requires 'virtual-host' to be set. By default, this is false.", "type": "boolean", "default": false}, "root-url": {"description": "The web address of the Jenkins installation (e.g. http://jenkins.example.com). This is used by Jenkins to refer to itself when creating links in emails, chat notifications, etc.", "type": "string"}}}, "roles": {"description": "Role configuration properties for Jenkins on DC/OS.", "type": "object", "properties": {"jenkins-master-role": {"description": "The accepted resource roles that the Jenkins master itself runs as using Marathon. By default, this will deploy to any agents with the * role. For example, to deploy to a public DC/OS agent, set this to 'slave_public'.", "type": "string", "default": "*"}, "jenkins-agent-role": {"description": "The role passed to the internal Jenkins configuration that denotes which resources to launch Jenkins agents on.", "type": "string", "default": "*"}}}, "security": {"description": "Security configuration properties for Jenkins on DC/OS.", "type": "object", "properties": {"strict-mode": {"description": "Enabled if Enterprise DC/OS is provisioned using the 'strict' security mode flag. When enabled, tasks run as the user specified below.", "type": "boolean", "default": false}, "strict-mode-user": {"description": "In strict mode, tasks will run as this user. The 'strict' security mode does not permit running tasks as root. By default, the user 'nobody' is used. Ensure that this user exists on each of the agents in your DC/OS cluster.", "type": "string", "default": "nobody"}}}, "advanced": {"description": "Advanced configuration properties for the Jenkins service. Under normal circumstances, you shouldn't need to modify these values.", "type": "object", "properties": {"mesos-master": {"description": "URL of this cluster's Mesos master.", "type": "string", "default": "zk://leader.mesos:2181/mesos"}, "jvm-opts": {"description": "Optional arguments to pass to the JVM.", "type": "string", "default": "-Xms1024m -Xmx1024m"}, "jenkins-opts": {"description": "Optional arguments to pass to Jenkins.", "type": "string"}, "docker-image": {"description": "The Docker image to use for the Jenkins service. By default, this package will use the Jenkins image in the Mesosphere organization on Docker Hub, which you must be authenticated against. Otherwise, specify the host, image, and tag for the Jenkins image on your private Docker Registry.", "type": "string"}, "docker-credentials-uri": {"description": "An optional URI to be fetched and extracted that contains docker credentials (e.g. file:///etc/docker/docker.tar.gz).", "type": "string"}}}}}, "version": "2.0.1-2.7.4", "postInstallNotes": "Jenkins has been installed.", "framework": true, "licenses": [{"url": "https://github.com/mesosphere/jenkins-dcos/blob/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "jenkins"}, {"tags": ["message", "broker", "messaging", "management", "kafka"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAiY3B1cyI6IHt7a2Fma2EtbWFuYWdlci5jcHVzfX0sCiAgIm1lbSI6IHt7a2Fma2EtbWFuYWdlci5tZW19fSwKICAiaW5zdGFuY2VzIjoge3trYWZrYS1tYW5hZ2VyLmluc3RhbmNlc319LAogICJjb250YWluZXIiOiB7CiAgICAidHlwZSI6ICJET0NLRVIiLAogICAgImRvY2tlciI6IHsKICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIua2Fma2EtbWFuYWdlci1kb2NrZXJ9fSIsCiAgICAgICJmb3JjZVB1bGxJbWFnZSI6IHRydWUsCiAgICAgICJuZXR3b3JrIjogIkJSSURHRSIsCiAgICAgICJwb3J0TWFwcGluZ3MiOiBbCiAgICAgICAgewogICAgICAgICAgImNvbnRhaW5lclBvcnQiOiA5MDAwLAogICAgICAgICAgImhvc3RQb3J0IjogMCwKICAgICAgICAgICJwcm90b2NvbCI6ICJ0Y3AiCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgfSwKICAiaGVhbHRoQ2hlY2tzIjogWwogICAgewogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMTIwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogMzAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMCwKICAgICAgInBhdGgiOiAiLyIsCiAgICAgICJwb3J0SW5kZXgiOiAwLAogICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDUKICAgIH0KICBdLAogICJlbnYiOiB7CiAgICAiWktfSE9TVFMiOiAie3trYWZrYS1tYW5hZ2VyLnprfX0iLAogICAgIktNX0FSR1MiOiAiLURrYWZrYS1tYW5hZ2VyLmJhc2UtemstcGF0aD0ve3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiQVBQTElDQVRJT05fU0VDUkVUIjogInt7a2Fma2EtbWFuYWdlci5hcHBsaWNhdGlvbl9zZWNyZXR9fSIKICB9LAogICJsYWJlbHMiOiB7CiAgICAiRENPU19TRVJWSUNFX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwIiwKICAgICJEQ09TX1NFUlZJQ0VfUE9SVF9JTkRFWCI6ICIwIgogIH0KfQo="}, "command": null, "scm": "https://github.com/yahoo/kafka-manager", "preInstallNotes": "You need a live kafka cluster (Kafka or Confluent).", "description": "A tool for managing Apache Kafka", "resource": {"images": {"icon-small": "http://master.mesos:8082/kafka-manager/images/icon-service-kafka-small.png", "icon-medium": "http://master.mesos:8082/kafka-manager/images/icon-service-kafka-medium.png", "icon-large": "http://master.mesos:8082/kafka-manager/images/icon-service-kafka-large.png"}, "assets": {"uris": {}, "container": {"docker": {"kafka-manager-docker": "master.mesos:5000/sheepkiller/kafka-manager:1.3.0.8"}}}}, "packagingVersion": "2.0", "maintainer": "mesos@cotds.org", "postUninstallNotes": "kafka-manager has been uninstalled. Please note that persistent data are still in your zookeeper cluster, under /${service.name} znode, and will need to be manually removed.", "releaseVersion": 0, "config": {"$schema": "http://json-schema.org/schema#", "type": "object", "properties": {"service": {"type": "object", "description": "DC/OS service configuration properties", "properties": {"name": {"description": "The name of the kafka-manager service instance.", "type": "string", "default": "kafka-manager"}}}, "kafka-manager": {"additionalProperties": false, "description": "Kafka-manager configuration properties", "type": "object", "properties": {"cpus": {"description": "CPU shares to allocate", "type": "number", "default": 1.0, "minimum": 0.1}, "mem": {"description": "Memory to allocate", "type": "number", "default": 1024.0, "minimum": 1024.0}, "zk": {"type": "string", "description": "Zookeeper URL for Kafka-manager", "default": "zk-1.zk:2181,zk-2.zk:2181,zk-3.zk:2181,zk-4.zk:2181,zk-5.zk:2181"}, "instances": {"description": "Number of desired instances", "type": "integer", "default": 1}, "application_secret": {"description": "The application secret key is used to secure cryptographics functions", "type": "string"}}, "required": ["cpus", "mem", "instances", "zk", "application_secret"]}}}, "version": "1.3.0.8", "postInstallNotes": "kafka-manager has been installed. Persistent data are stored in the zookeeper cluster you defined under /${service.name} znode.", "framework": false, "licenses": [{"url": "https://raw.githubusercontent.com/yahoo/kafka-manager/master/LICENCE", "name": "Apache License Version 2.0"}], "name": "kafka-manager"}, {"tags": ["message", "broker", "pubsub"], "selected": false, "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAiY3B1cyI6IDEuMCwKICAibWVtIjogMTIzMCwKICAiaW5zdGFuY2VzIjogMSwKICAiY21kIjogImV4cG9ydCBQQVRIPSQobHMgLWQgJE1FU09TX1NBTkRCT1gvanJlKi9iaW4pOiRQQVRIICYmIC4vc2NoZWR1bGVyL2Jpbi9rYWZrYS1zY2hlZHVsZXIgc2VydmVyIC4vc2NoZWR1bGVyL2NvbmYvc2NoZWR1bGVyLnltbCIsCiAgImxhYmVscyI6IHsKICAgICJEQ09TX1BBQ0tBR0VfRlJBTUVXT1JLX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19NSUdSQVRJT05fQVBJX1ZFUlNJT04iOiAidjEiLAogICAgIkRDT1NfTUlHUkFUSU9OX0FQSV9QQVRIIjogIi92MS9wbGFuIiwKICAgICJNQVJBVEhPTl9TSU5HTEVfSU5TVEFOQ0VfQVBQIjoidHJ1ZSIsCiAgICAiRENPU19TRVJWSUNFX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX1BPUlRfSU5ERVgiOiAiMCIsCiAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwIgogIH0sCiAgImVudiI6IHsKICAgICJMRF9MSUJSQVJZX1BBVEgiOiAiL29wdC9tZXNvc3BoZXJlL2xpYiIsCiAgICAiRlJBTUVXT1JLX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRlJBTUVXT1JLX1BSSU5DSVBBTCI6ICJ7e3NlcnZpY2UucHJpbmNpcGFsfX0iLAogICAgIlVTRVIiOiAie3tzZXJ2aWNlLnVzZXJ9fSIsCiAgICAiUExBQ0VNRU5UX1NUUkFURUdZIjogInt7c2VydmljZS5wbGFjZW1lbnRfc3RyYXRlZ3l9fSIsCiAgICAiUEhBU0VfU1RSQVRFR1kiOiAie3tzZXJ2aWNlLnBoYXNlX3N0cmF0ZWd5fX0iLAogICAgIkVOQUJMRV9SRVBMQUNFTUVOVCI6ICJ7e3NlcnZpY2UuZW5hYmxlX3JlcGxhY2VtZW50fX0iLAogICAgIlJFQ09WRVJZX0dSQUNFX1BFUklPRF9TRUMiOiAie3tzZXJ2aWNlLnJlY292ZXJfaW5fcGxhY2VfZ3JhY2VfcGVyaW9kX3NlY3N9fSIsCiAgICAiUkVQTEFDRV9ERUxBWV9TRUMiOiAie3tzZXJ2aWNlLm1pbl9kZWxheV9iZXR3ZWVuX3JlY292ZXJzX3NlY3N9fSIsCiAgICAiRU5BQkxFX0JST0tFUl9IRUFMVEhfQ0hFQ0siOiAie3tzZXJ2aWNlLmVuYWJsZV9oZWFsdGhfY2hlY2t9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19ERUxBWV9TRUMiOiAie3tzZXJ2aWNlLmhlYWx0aF9jaGVja19kZWxheV9zZWN9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19JTlRFUlZBTF9TRUMiOiAie3tzZXJ2aWNlLmhlYWx0aF9jaGVja19pbnRlcnZhbF9zZWN9fSIsCiAgICAiQlJPS0VSX0hFQUxUSF9DSEVDS19USU1FT1VUX1NFQyI6ICJ7e3NlcnZpY2UuaGVhbHRoX2NoZWNrX3RpbWVvdXRfc2VjfX0iLAogICAgIkJST0tFUl9IRUFMVEhfQ0hFQ0tfTUFYX0ZBSUxVUkVTIjogInt7c2VydmljZS5oZWFsdGhfY2hlY2tfbWF4X2NvbnNlY3V0aXZlX2ZhaWx1cmVzfX0iLAogICAgIkJST0tFUl9IRUFMVEhfQ0hFQ0tfR1JBQ0VfU0VDIjogInt7c2VydmljZS5oZWFsdGhfY2hlY2tfZ3JhY2VfcGVyaW9kX3NlY319IiwKICAgICJCUk9LRVJfQ09VTlQiOiAie3ticm9rZXJzLmNvdW50fX0iLAogICAgIkJST0tFUl9DUFVTIjogInt7YnJva2Vycy5jcHVzfX0iLAogICAgIkJST0tFUl9NRU0iOiAie3ticm9rZXJzLm1lbX19IiwKICAgICJCUk9LRVJfSEVBUF9NQiI6ICJ7e2Jyb2tlcnMuaGVhcC5zaXplfX0iLAogICAgIkJST0tFUl9ESVNLIjogInt7YnJva2Vycy5kaXNrfX0iLAogICAgIkJST0tFUl9QT1JUIjogInt7YnJva2Vycy5wb3J0fX0iLAogICAgIkRJU0tfVFlQRSI6ICJ7e2Jyb2tlcnMuZGlza190eXBlfX0iLAogICAgIktBRktBX1ZFUl9OQU1FIjogImthZmthXzIuMTEtMC4xMC4wLjAiLAogICAgIktBRktBX1VSSSI6ICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmthZmthX3Rnen19IiwKICAgICJPVkVSUklERVJfVVJJIjogInt7cmVzb3VyY2UuYXNzZXRzLnVyaXMub3ZlcnJpZGVyLXppcH19IiwKICAgICJFWEVDVVRPUl9VUkkiOiAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5leGVjdXRvci16aXB9fSIsCiAgICAiSkFWQV9VUkkiOiAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5qcmUtdGFyLWd6fX0iLAogICAgIktBRktBX1pPT0tFRVBFUl9VUkkiIDogInt7a2Fma2Eua2Fma2Ffem9va2VlcGVyX3VyaX19IiwKICAgICJLQUZLQV9BRFZFUlRJU0VfSE9TVF9JUCIgOiAie3trYWZrYS5rYWZrYV9hZHZlcnRpc2VfaG9zdF9pcH19IiwKICAgICJLQUZLQV9PVkVSUklERV9SRVNFUlZFRF9CUk9LRVJfTUFYX0lEIjogInt7a2Fma2EucmVzZXJ2ZWRfYnJva2VyX21heF9pZH19IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1RPUElDX0NPTVBSRVNTSU9OX0NPREVDIjogInt7a2Fma2Eub2Zmc2V0c190b3BpY19jb21wcmVzc2lvbl9jb2RlY319IiwKICAgICJLQUZLQV9PVkVSUklERV9SRVBMSUNBX0ZFVENIX01JTl9CWVRFUyI6ICJ7e2thZmthLnJlcGxpY2FfZmV0Y2hfbWluX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0NPTlRST0xMRURfU0hVVERPV05fUkVUUllfQkFDS09GRl9NUyI6ICJ7e2thZmthLmNvbnRyb2xsZWRfc2h1dGRvd25fcmV0cnlfYmFja29mZl9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfRkxVU0hfT0ZGU0VUX0NIRUNLUE9JTlRfSU5URVJWQUxfTVMiOiAie3trYWZrYS5sb2dfZmx1c2hfb2Zmc2V0X2NoZWNrcG9pbnRfaW50ZXJ2YWxfbXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfT0ZGU0VUU19UT1BJQ19OVU1fUEFSVElUSU9OUyI6ICJ7e2thZmthLm9mZnNldHNfdG9waWNfbnVtX3BhcnRpdGlvbnN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUFYX0NPTk5FQ1RJT05TX1BFUl9JUF9PVkVSUklERVMiOiAie3trYWZrYS5tYXhfY29ubmVjdGlvbnNfcGVyX2lwX292ZXJyaWRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MRUFERVJfSU1CQUxBTkNFX0NIRUNLX0lOVEVSVkFMX1NFQ09ORFMiOiAie3trYWZrYS5sZWFkZXJfaW1iYWxhbmNlX2NoZWNrX2ludGVydmFsX3NlY29uZHN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfSU5URVJfQlJPS0VSX1BST1RPQ09MX1ZFUlNJT04iOiAie3trYWZrYS5pbnRlcl9icm9rZXJfcHJvdG9jb2xfdmVyc2lvbn19IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfTUVTU0FHRV9GT1JNQVRfVkVSU0lPTiI6ICJ7e2thZmthLmxvZ19tZXNzYWdlX2Zvcm1hdF92ZXJzaW9ufX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfU09DS0VUX1RJTUVPVVRfTVMiOiAie3trYWZrYS5yZXBsaWNhX3NvY2tldF90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0dST1VQX01BWF9TRVNTSU9OX1RJTUVPVVRfTVMiOiAie3trYWZrYS5ncm91cF9tYXhfc2Vzc2lvbl90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX01FVFJJQ1NfTlVNX1NBTVBMRVMiOiAie3trYWZrYS5tZXRyaWNzX251bV9zYW1wbGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0RFTEVURV9SRVRFTlRJT05fTVMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9kZWxldGVfcmV0ZW50aW9uX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19QUkVBTExPQ0FURSI6ICJ7e2thZmthLmxvZ19wcmVhbGxvY2F0ZX19IiwKICAgICJLQUZLQV9PVkVSUklERV9SRVBMSUNBX1NPQ0tFVF9SRUNFSVZFX0JVRkZFUl9CWVRFUyI6ICJ7e2thZmthLnJlcGxpY2Ffc29ja2V0X3JlY2VpdmVfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX09GRlNFVF9NRVRBREFUQV9NQVhfQllURVMiOiAie3trYWZrYS5vZmZzZXRfbWV0YWRhdGFfbWF4X2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX01FU1NBR0VfTUFYX0JZVEVTIjogInt7a2Fma2EubWVzc2FnZV9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX1JPTExfSklUVEVSX0hPVVJTIjogInt7a2Fma2EubG9nX3JvbGxfaml0dGVyX2hvdXJzfX0iLAogICAgIktBRktBX09WRVJSSURFX09GRlNFVFNfUkVURU5USU9OX0NIRUNLX0lOVEVSVkFMX01TIjogInt7a2Fma2Eub2Zmc2V0c19yZXRlbnRpb25fY2hlY2tfaW50ZXJ2YWxfbXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfRkVUQ0hfUFVSR0FUT1JZX1BVUkdFX0lOVEVSVkFMX1JFUVVFU1RTIjogInt7a2Fma2EuZmV0Y2hfcHVyZ2F0b3J5X3B1cmdlX2ludGVydmFsX3JlcXVlc3RzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19SRVRFTlRJT05fQ0hFQ0tfSU5URVJWQUxfTVMiOiAie3trYWZrYS5sb2dfcmV0ZW50aW9uX2NoZWNrX2ludGVydmFsX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19JTkRFWF9JTlRFUlZBTF9CWVRFUyI6ICJ7e2thZmthLmxvZ19pbmRleF9pbnRlcnZhbF9ieXRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9OVU1fTkVUV09SS19USFJFQURTIjogInt7a2Fma2EubnVtX25ldHdvcmtfdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX0NPTU1JVF9USU1FT1VUX01TIjogInt7a2Fma2Eub2Zmc2V0c19jb21taXRfdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1RPUElDX1JFUExJQ0FUSU9OX0ZBQ1RPUiI6ICJ7e2thZmthLm9mZnNldHNfdG9waWNfcmVwbGljYXRpb25fZmFjdG9yfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfTUFYX0JZVEVTIjogInt7a2Fma2EucmVwbGljYV9mZXRjaF9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfQ09OTkVDVElPTlNfTUFYX0lETEVfTVMiOiAie3trYWZrYS5jb25uZWN0aW9uc19tYXhfaWRsZV9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9TT0NLRVRfUkVRVUVTVF9NQVhfQllURVMiOiAie3trYWZrYS5zb2NrZXRfcmVxdWVzdF9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUVUUklDU19TQU1QTEVfV0lORE9XX01TIjogInt7a2Fma2EubWV0cmljc19zYW1wbGVfd2luZG93X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX05VTV9QQVJUSVRJT05TIjogInt7a2Fma2EubnVtX3BhcnRpdGlvbnN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUkVQTElDQV9MQUdfVElNRV9NQVhfTVMiOiAie3trYWZrYS5yZXBsaWNhX2xhZ190aW1lX21heF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfQ0xFQU5FUl9JT19CVUZGRVJfTE9BRF9GQUNUT1IiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9pb19idWZmZXJfbG9hZF9mYWN0b3J9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfT0ZGU0VUU19DT01NSVRfUkVRVUlSRURfQUNLUyI6ICJ7e2thZmthLm9mZnNldHNfY29tbWl0X3JlcXVpcmVkX2Fja3N9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfQVVUT19DUkVBVEVfVE9QSUNTX0VOQUJMRSI6ICJ7e2thZmthLmF1dG9fY3JlYXRlX3RvcGljc19lbmFibGV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfVU5DTEVBTl9MRUFERVJfRUxFQ1RJT05fRU5BQkxFIjogInt7a2Fma2EudW5jbGVhbl9sZWFkZXJfZWxlY3Rpb25fZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfQkFDS09GRl9NUyI6ICJ7e2thZmthLnJlcGxpY2FfZmV0Y2hfYmFja29mZl9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfUk9MTF9IT1VSUyI6ICJ7e2thZmthLmxvZ19yb2xsX2hvdXJzfX0iLAogICAgIktBRktBX09WRVJSSURFX1pPT0tFRVBFUl9TRVNTSU9OX1RJTUVPVVRfTVMiOiAie3trYWZrYS56b29rZWVwZXJfc2Vzc2lvbl90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1BST0RVQ0VSX1BVUkdBVE9SWV9QVVJHRV9JTlRFUlZBTF9SRVFVRVNUUyI6ICJ7e2thZmthLnByb2R1Y2VyX3B1cmdhdG9yeV9wdXJnZV9pbnRlcnZhbF9yZXF1ZXN0c319IiwKICAgICJLQUZLQV9PVkVSUklERV9HUk9VUF9NSU5fU0VTU0lPTl9USU1FT1VUX01TIjogInt7a2Fma2EuZ3JvdXBfbWluX3Nlc3Npb25fdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfSU5ERVhfU0laRV9NQVhfQllURVMiOiAie3trYWZrYS5sb2dfaW5kZXhfc2l6ZV9tYXhfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTlVNX1JFUExJQ0FfRkVUQ0hFUlMiOiAie3trYWZrYS5udW1fcmVwbGljYV9mZXRjaGVyc319IiwKICAgICJLQUZLQV9PVkVSUklERV9NSU5fSU5TWU5DX1JFUExJQ0FTIjogInt7a2Fma2EubWluX2luc3luY19yZXBsaWNhc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfRkxVU0hfSU5URVJWQUxfTUVTU0FHRVMiOiAie3trYWZrYS5sb2dfZmx1c2hfaW50ZXJ2YWxfbWVzc2FnZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfU09DS0VUX1NFTkRfQlVGRkVSX0JZVEVTIjogInt7a2Fma2Euc29ja2V0X3NlbmRfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0FVVE9fTEVBREVSX1JFQkFMQU5DRV9FTkFCTEUiOiAie3trYWZrYS5hdXRvX2xlYWRlcl9yZWJhbGFuY2VfZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0VOQUJMRSI6ICJ7e2thZmthLmxvZ19jbGVhbmVyX2VuYWJsZX19IiwKICAgICJLQUZLQV9PVkVSUklERV9RVUVVRURfTUFYX1JFUVVFU1RTIjogInt7a2Fma2EucXVldWVkX21heF9yZXF1ZXN0c319IiwKICAgICJLQUZLQV9PVkVSUklERV9DT05UUk9MTEVEX1NIVVRET1dOX01BWF9SRVRSSUVTIjogInt7a2Fma2EuY29udHJvbGxlZF9zaHV0ZG93bl9tYXhfcmV0cmllc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX0xPQURfQlVGRkVSX1NJWkUiOiAie3trYWZrYS5vZmZzZXRzX2xvYWRfYnVmZmVyX3NpemV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX1JFVEVOVElPTl9CWVRFUyI6ICJ7e2thZmthLmxvZ19yZXRlbnRpb25fYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTlVNX0lPX1RIUkVBRFMiOiAie3trYWZrYS5udW1faW9fdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9DT05UUk9MTEVSX1NPQ0tFVF9USU1FT1VUX01TIjogInt7a2Fma2EuY29udHJvbGxlcl9zb2NrZXRfdGltZW91dF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfUkVURU5USU9OX0hPVVJTIjogInt7a2Fma2EubG9nX3JldGVudGlvbl9ob3Vyc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfRkxVU0hfU0NIRURVTEVSX0lOVEVSVkFMX01TIjogInt7a2Fma2EubG9nX2ZsdXNoX3NjaGVkdWxlcl9pbnRlcnZhbF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1JFVEVOVElPTl9NSU5VVEVTIjogInt7a2Fma2Eub2Zmc2V0c19yZXRlbnRpb25fbWludXRlc319IiwKICAgICJLQUZLQV9PVkVSUklERV9RVU9UQV9XSU5ET1dfU0laRV9TRUNPTkRTIjogInt7a2Fma2EucXVvdGFfd2luZG93X3NpemVfc2Vjb25kc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfU0VHTUVOVF9CWVRFUyI6ICJ7e2thZmthLmxvZ19zZWdtZW50X2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX0xFQURFUl9JTUJBTEFOQ0VfUEVSX0JST0tFUl9QRVJDRU5UQUdFIjogInt7a2Fma2EubGVhZGVyX2ltYmFsYW5jZV9wZXJfYnJva2VyX3BlcmNlbnRhZ2V9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTUFYX0NPTk5FQ1RJT05TX1BFUl9JUCI6ICJ7e2thZmthLm1heF9jb25uZWN0aW9uc19wZXJfaXB9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX0NMRUFORVJfREVEVVBFX0JVRkZFUl9TSVpFIjogInt7a2Fma2EubG9nX2NsZWFuZXJfZGVkdXBlX2J1ZmZlcl9zaXplfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX01JTl9DTEVBTkFCTEVfUkFUSU8iOiAie3trYWZrYS5sb2dfY2xlYW5lcl9taW5fY2xlYW5hYmxlX3JhdGlvfX0iLAogICAgIktBRktBX09WRVJSSURFX1pPT0tFRVBFUl9TWU5DX1RJTUVfTVMiOiAie3trYWZrYS56b29rZWVwZXJfc3luY190aW1lX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1FVT1RBX0NPTlNVTUVSX0RFRkFVTFQiOiAie3trYWZrYS5xdW90YV9jb25zdW1lcl9kZWZhdWx0fX0iLAogICAgIktBRktBX09WRVJSSURFX0RFTEVURV9UT1BJQ19FTkFCTEUiOiAie3trYWZrYS5kZWxldGVfdG9waWNfZW5hYmxlfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTlVQX1BPTElDWSI6ICJ7e2thZmthLmxvZ19jbGVhbnVwX3BvbGljeX19IiwKICAgICJLQUZLQV9PVkVSUklERV9ERUZBVUxUX1JFUExJQ0FUSU9OX0ZBQ1RPUiI6ICJ7e2thZmthLmRlZmF1bHRfcmVwbGljYXRpb25fZmFjdG9yfX0iLAogICAgIktBRktBX09WRVJSSURFX05VTV9SRUNPVkVSWV9USFJFQURTX1BFUl9EQVRBX0RJUiI6ICJ7e2thZmthLm51bV9yZWNvdmVyeV90aHJlYWRzX3Blcl9kYXRhX2Rpcn19IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfQ0xFQU5FUl9JT19CVUZGRVJfU0laRSI6ICJ7e2thZmthLmxvZ19jbGVhbmVyX2lvX2J1ZmZlcl9zaXplfX0iLAogICAgIktBRktBX09WRVJSSURFX0JBQ0tHUk9VTkRfVEhSRUFEUyI6ICJ7e2thZmthLmJhY2tncm91bmRfdGhyZWFkc319IiwKICAgICJLQUZLQV9PVkVSUklERV9MT0dfU0VHTUVOVF9ERUxFVEVfREVMQVlfTVMiOiAie3trYWZrYS5sb2dfc2VnbWVudF9kZWxldGVfZGVsYXlfbXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUVVPVEFfV0lORE9XX05VTSI6ICJ7e2thZmthLnF1b3RhX3dpbmRvd19udW19fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfUkVRVUVTVF9USU1FT1VUX01TIjogInt7a2Fma2EucmVxdWVzdF90aW1lb3V0X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX1RIUkVBRFMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl90aHJlYWRzfX0iLAogICAgIktBRktBX09WRVJSSURFX1FVT1RBX1BST0RVQ0VSX0RFRkFVTFQiOiAie3trYWZrYS5xdW90YV9wcm9kdWNlcl9kZWZhdWx0fX0iLAogICAgIktBRktBX09WRVJSSURFX0xPR19DTEVBTkVSX0JBQ0tPRkZfTVMiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9iYWNrb2ZmX21zfX0iLAogICAgIktBRktBX09WRVJSSURFX0NPTlRST0xMRURfU0hVVERPV05fRU5BQkxFIjogInt7a2Fma2EuY29udHJvbGxlZF9zaHV0ZG93bl9lbmFibGV9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfU09DS0VUX1JFQ0VJVkVfQlVGRkVSX0JZVEVTIjogInt7a2Fma2Euc29ja2V0X3JlY2VpdmVfYnVmZmVyX2J5dGVzfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfRkVUQ0hfV0FJVF9NQVhfTVMiOiAie3trYWZrYS5yZXBsaWNhX2ZldGNoX3dhaXRfbWF4X21zfX0iLAogICAgIktBRktBX09WRVJSSURFX1JFUExJQ0FfSElHSF9XQVRFUk1BUktfQ0hFQ0tQT0lOVF9JTlRFUlZBTF9NUyI6ICJ7e2thZmthLnJlcGxpY2FfaGlnaF93YXRlcm1hcmtfY2hlY2twb2ludF9pbnRlcnZhbF9tc319IiwKICAgICJLQUZLQV9PVkVSUklERV9PRkZTRVRTX1RPUElDX1NFR01FTlRfQllURVMiOiAie3trYWZrYS5vZmZzZXRzX3RvcGljX3NlZ21lbnRfYnl0ZXN9fSIsCiAgICAiS0FGS0FfT1ZFUlJJREVfTE9HX0NMRUFORVJfSU9fTUFYX0JZVEVTX1BFUl9TRUNPTkQiOiAie3trYWZrYS5sb2dfY2xlYW5lcl9pb19tYXhfYnl0ZXNfcGVyX3NlY29uZH19IiwKICAgICJLQUZLQV9PVkVSUklERV9DT01QUkVTU0lPTl9UWVBFIjogInt7a2Fma2EuY29tcHJlc3Npb25fdHlwZX19IgogICAge3sjc2VydmljZS5zZWNyZXRfbmFtZX19CiAgICAsIkRDT1NfU0VSVklDRV9BQ0NPVU5UX0NSRURFTlRJQUwiOiB7ICJzZWNyZXQiOiAic2VydmljZUNyZWRlbnRpYWwiIH0sCiAgICAiTUVTT1NfTU9EVUxFUyI6ICJmaWxlOi8vL29wdC9tZXNvc3BoZXJlL2V0Yy9tZXNvcy1zY2hlZHVsZXItbW9kdWxlcy9kY29zX2F1dGhlbnRpY2F0ZWVfbW9kdWxlLmpzb24iLAogICAgIk1FU09TX0FVVEhFTlRJQ0FURUUiOiAiY29tX21lc29zcGhlcmVfZGNvc19DbGFzc2ljUlBDQXV0aGVudGljYXRlZSIsCiAgICAiU1NMX0NFUlRfRklMRSI6ICIvcnVuL2Rjb3MvcGtpL3Rscy9jZXJ0cy9zY2hlZHVsZXIuY3J0IiwKICAgICJTU0xfS0VZX0ZJTEUiOiAiL3J1bi9kY29zL3BraS90bHMvcHJpdmF0ZS9zY2hlZHVsZXIua2V5IiwKICAgICJTU0xfQ0FfRklMRSI6ICIvcnVuL2Rjb3MvcGtpL0NBL2NlcnRzL2NhLmNydCIsCiAgICAiU1NMX0VOQUJMRUQiOiAidHJ1ZSIKICAgIHt7L3NlcnZpY2Uuc2VjcmV0X25hbWV9fQogIH0sCiAge3sjc2VydmljZS5zZWNyZXRfbmFtZX19CiAgInNlY3JldHMiOiB7CiAgICAic2VydmljZUNyZWRlbnRpYWwiOiB7CiAgICAgICJzb3VyY2UiOiAie3tzZXJ2aWNlLnNlY3JldF9uYW1lfX0iCiAgICB9CiAgfSwKICB7ey9zZXJ2aWNlLnNlY3JldF9uYW1lfX0KICAidXJpcyI6IFsKICAgICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLmpyZS10YXItZ3p9fSIsCiAgICAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5zY2hlZHVsZXItemlwfX0iLAogICAgInt7cmVzb3VyY2UuYXNzZXRzLnVyaXMua2Fma2FfdGd6fX0iCiAgXSwKICAiaGVhbHRoQ2hlY2tzIjogWwogICAgewogICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogMTIwLAogICAgICAiaW50ZXJ2YWxTZWNvbmRzIjogMzAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMCwKICAgICAgInBhdGgiOiAiL2FkbWluL2hlYWx0aGNoZWNrIiwKICAgICAgInBvcnRJbmRleCI6IDAsCiAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogNQogICAgfQogIF0sCiAgInJlYWRpbmVzc0NoZWNrcyI6IFsKICAgICAgewogICAgICAgICJuYW1lIjogImthZmthVXBkYXRlUHJvZ3Jlc3MiLAogICAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgICAicGF0aCI6ICIvdjEvcGxhbiIsCiAgICAgICAgInBvcnROYW1lIjogImFwaSIsCiAgICAgICAgImludGVydmFsIjogMTAwMDAsCiAgICAgICAgInRpbWVvdXQiOiAxMDAwMCwKICAgICAgICAiaHR0cFN0YXR1c0NvZGVzRm9yUmVhZHkiOiBbMjAwXSwKICAgICAgICAicHJlc2VydmVMYXN0UmVzcG9uc2UiOiB0cnVlCiAgICAgIH0KICBdLAogICJ1cGdyYWRlU3RyYXRlZ3kiOnsKICAgICJtaW5pbXVtSGVhbHRoQ2FwYWNpdHkiOiAwLAogICAgIm1heGltdW1PdmVyQ2FwYWNpdHkiOiAwCiAgfSwKICAicG9ydERlZmluaXRpb25zIjogWwogICAgewogICAgICAicG9ydCI6IDAsCiAgICAgICJwcm90b2NvbCI6ICJ0Y3AiLAogICAgICAibmFtZSI6ICJhcGkiLAogICAgICAibGFiZWxzIjoge30KICAgIH0KICBdCn0K"}, "command": {"pip": ["http://master.mesos:8082/kafka/commands/bin_wrapper-0.0.1-py2.py3-none-any.whl"]}, "minDcosReleaseVersion": "1.7", "resource": {"images": {"icon-small": "http://master.mesos:8082/kafka/images/icon-service-kafka-small.png", "icon-medium": "http://master.mesos:8082/kafka/images/icon-service-kafka-medium.png", "icon-large": "http://master.mesos:8082/kafka/images/icon-service-kafka-large.png"}, "assets": {"uris": {"scheduler-zip": "http://master.mesos:8082/kafka/uris/scheduler.zip", "jre-tar-gz": "http://master.mesos:8082/kafka/uris/jre-8u91-linux-x64.tar.gz", "overrider-zip": "http://master.mesos:8082/kafka/uris/overrider.zip", "executor-zip": "http://master.mesos:8082/kafka/uris/executor.zip", "kafka_tgz": "http://master.mesos:8082/kafka/uris/kafka_2.11-0.10.0.0.tgz"}}}, "name": "kafka", "packagingVersion": "3.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "DC/OS Kafka Service has been uninstalled.\nPlease follow the instructions at https://docs.mesosphere.com/usage/services/kafka/uninstall to remove any persistent state if required.", "releaseVersion": 30, "config": {"type": "object", "properties": {"service": {"type": "object", "description": "DC/OS service configuration properties", "properties": {"name": {"description": "The name of the Kafka service instance", "type": "string", "default": "kafka"}, "principal": {"description": "The principal for the Kafka service instance.", "type": "string", "default": "kafka-principal"}, "secret_name": {"description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", "type": "string", "default": ""}, "placement_strategy": {"description": "Broker placement strategy. See documentation. [ANY, NODE]", "type": "string", "default": "NODE"}, "phase_strategy": {"description": "Broker rollout strategy. See documentation. [INSTALL, STAGE]", "type": "string", "default": "INSTALL"}, "enable_replacement": {"description": "Enable automated replacement of Brokers. WARNING: May cause data loss. See documentation.", "type": "boolean", "default": false}, "recover_in_place_grace_period_secs": {"description": "The minimum amount of time (in minutes) which must pass before a Broker may be destructively replaced.", "type": "number", "default": 1200}, "min_delay_between_recovers_secs": {"description": "The minimum amount of time (in seconds) which must pass between destructive replacements of Brokers.", "type": "number", "default": 600}, "enable_health_check": {"description": "Enable automated detection of Broker failures which did not result in a Broker process exit.", "type": "boolean", "default": true}, "health_check_delay_sec": {"description": "The period of time (in seconds) waited before the health-check begins execution.", "type": "number", "default": 15}, "health_check_interval_sec": {"description": "The period of time (in seconds) between health-check executions.", "type": "number", "default": 10}, "health_check_timeout_sec": {"description": "The duration (in seconds) allowed for a health-check to complete before it is considered a failure.", "type": "number", "default": 20}, "health_check_grace_period_sec": {"description": "The period of time after the delay (in seconds) before health-check failures count towards the maximum consecutive failures.", "type": "number", "default": 10}, "health_check_max_consecutive_failures": {"description": "The the number of consecutive failures which cause a Broker process to exit.", "type": "number", "default": 3}}, "required": ["placement_strategy", "phase_strategy"]}, "brokers": {"description": "Kafka broker configuration properties", "type": "object", "properties": {"cpus": {"description": "Broker cpu requirements", "type": "number", "default": 1.0}, "mem": {"description": "Broker mem requirements", "type": "integer", "default": 2304}, "heap": {"description": "The Kafka process JVM heap configuration object", "type": "object", "properties": {"size": {"type": "integer", "description": "The amound of JVM heap, in MB, allocated to the Kafka broker process.", "default": 2048}}, "additionalProperties": false, "required": ["size"]}, "disk": {"description": "Broker disk requirements (only respected with persistent volumes)", "type": "integer", "default": 5000}, "disk_type": {"type": "string", "description": "Disk type to be used for storing broker data. See documentation. [ROOT, MOUNT]", "default": "ROOT"}, "count": {"description": "Number of brokers to run", "type": "number", "default": 3}, "port": {"description": "Port for broker to listen on", "type": "integer", "default": 0}}, "required": ["cpus", "mem", "disk", "count"]}, "executor": {"description": "Kafka executor configuration properties", "type": "object", "properties": {"cpus": {"description": "Executor cpu requirements", "type": "number", "default": 0.5}, "mem": {"description": "Executor mem requirements", "type": "integer", "default": 256}, "disk": {"description": "Executor disk requirements", "type": "integer", "default": 0}}, "required": ["cpus", "mem", "disk"]}, "kafka": {"description": "Kafka service configuration properties", "type": "object", "additionalProperties": false, "properties": {"kafka_zookeeper_uri": {"title": "The address of the Zookeeper cluster used by Kafka.", "description": "This should be the address of the Zookeeper cluster Kafka will use.", "type": "string", "default": "master.mesos:2181"}, "kafka_advertise_host_ip": {"description": "Automatically configure advertised.host.name with the IP address detected by /opt/mesosphere/detect_ip", "type": "boolean", "default": true}, "auto_create_topics_enable": {"title": "auto.create.topics.enable", "description": "Enables auto creation of topic on the server", "type": "boolean", "default": true}, "auto_leader_rebalance_enable": {"title": "auto.leader.rebalance.enable", "description": "Enables auto leader balancing. A background thread checks and triggers leader balance if required at regular intervals", "type": "boolean", "default": true}, "background_threads": {"title": "background.threads", "description": "The number of threads to use for various background processing tasks", "type": "integer", "default": 10}, "compression_type": {"title": "compression.type", "description": "Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', lz4). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.", "type": "string", "default": "producer"}, "delete_topic_enable": {"title": "delete.topic.enable", "description": "Enables delete topic. Delete topic through the admin tool will have no effect if this config is turned off", "type": "boolean", "default": false}, "leader_imbalance_check_interval_seconds": {"title": "leader.imbalance.check.interval.seconds", "description": "The frequency with which the partition rebalance check is triggered by the controller", "type": "integer", "default": 300}, "leader_imbalance_per_broker_percentage": {"title": "leader.imbalance.per.broker.percentage", "description": "The ratio of leader imbalance allowed per broker. The controller would trigger a leader balance if it goes above this value per broker. The value is specified in percentage.", "type": "integer", "default": 10}, "log_flush_interval_messages": {"title": "log.flush.interval.messages", "description": "The number of messages accumulated on a log partition before messages are flushed to disk", "type": "string", "default": "9223372036854775807"}, "log_flush_offset_checkpoint_interval_ms": {"title": "log.flush.offset.checkpoint.interval.ms", "description": "The frequency with which we update the persistent record of the last flush which acts as the log recovery point", "type": "integer", "default": 60000}, "log_flush_scheduler_interval_ms": {"title": "log.flush.scheduler.interval.ms", "description": "The frequency in ms that the log flusher checks whether any log needs to be flushed to disk", "type": "string", "default": "9223372036854775807"}, "log_retention_bytes": {"title": "log.retention.bytes", "description": "The maximum size of the log before deleting it", "type": "string", "default": "-1"}, "log_retention_hours": {"title": "log.retention.hours", "description": "The number of hours to keep a log file before deleting it (in hours), tertiary to log.retention.ms property", "type": "integer", "default": 168}, "log_roll_hours": {"title": "log.roll.hours", "description": "The maximum time before a new log segment is rolled out (in hours), secondary to log.roll.ms property", "type": "integer", "default": 168}, "log_roll_jitter_hours": {"title": "log.roll.jitter.hours", "description": "The maximum jitter to subtract from logRollTimeMillis (in hours), secondary to log.roll.jitter.ms property", "type": "integer", "default": 0}, "log_segment_bytes": {"title": "log.segment.bytes", "description": "The maximum size of a single log file", "type": "integer", "default": 1073741824}, "log_segment_delete_delay_ms": {"title": "log.segment.delete.delay.ms", "description": "The amount of time to wait before deleting a file from the filesystem", "type": "integer", "default": 60000}, "message_max_bytes": {"title": "message.max.bytes", "description": "The maximum size of message that the server can receive", "type": "integer", "default": 1000012}, "min_insync_replicas": {"title": "min.insync.replicas", "description": "define the minimum number of replicas in ISR needed to satisfy a produce request with required.acks=-1 (or all)", "type": "integer", "default": 1}, "num_io_threads": {"title": "num.io.thread", "description": "The number of io threads that the server uses for carrying out network requests", "type": "integer", "default": 8}, "num_network_threads": {"title": "num.network.threads", "description": "The number of network threads that the server uses for handling network requests", "type": "integer", "default": 3}, "num_recovery_threads_per_data_dir": {"title": "num.recovery.threads.per.data.dir", "description": "The number of threads per data directory to be used for log recovery at startup and flushing at shutdown", "type": "integer", "default": 1}, "num_replica_fetchers": {"title": "num.replica.fetchers", "description": "Number of fetcher threads used to replicate messages from a source broker. Increasing this value can increase the degree of I/O parallelism in the follower broker.", "type": "integer", "default": 1}, "offset_metadata_max_bytes": {"title": "offset.metadata.max.bytes", "description": "The maximum size for a metadata entry associated with an offset commit", "type": "integer", "default": 4096}, "offsets_commit_required_acks": {"title": "offsets.commit.required.acks", "description": "The required acks before the commit can be accepted. In general, the default (-1) should not be overridden", "type": "integer", "default": -1}, "offsets_commit_timeout_ms": {"title": "offsets.commit.timeout.ms", "description": "Offset commit will be delayed until all replicas for the offsets topic receive the commit or this timeout is reached. This is similar to the producer request timeout.", "type": "integer", "default": 5000}, "offsets_load_buffer_size": {"title": "offsets.load.buffer.size", "description": "Batch size for reading from the offsets segments when loading offsets into the cache.", "type": "integer", "default": 5242880}, "offsets_retention_check_interval_ms": {"title": "offsets.retention.check.interval.ms", "description": "Frequency at which to check for stale offsets", "type": "integer", "default": 600000}, "offsets_retention_minutes": {"title": "offsets.retention.minutes", "description": "Log retention window in minutes for offsets topic", "type": "integer", "default": 1440}, "offsets_topic_compression_codec": {"title": "offsets.topic.compression.codec", "description": "Compression codec for the offsets topic - compression may be used to achieve 'atomic' commits", "type": "integer", "default": 0}, "offsets_topic_num_partitions": {"title": "offsets.topic.num.partitions", "description": "The number of partitions for the offset commit topic (should not change after deployment).", "type": "integer", "default": 50}, "offsets_topic_replication_factor": {"title": "offsets.topic.replication.factor", "description": "The replication factor for the offsets topic (set higher to ensure availability). To ensure that the effective replication factor of the offsets topic is the configured value, the number of alive brokers has to be at least the replication factor at the time of the first request for the offsets topic. If not, either the offsets topic creation will fail or it will get a replication factor of min(alive brokers, configured replication factor)", "type": "integer", "default": 3}, "offsets_topic_segment_bytes": {"title": "offsets.topic.segment.bytes", "description": "The offsets topic segment bytes should be kept relatively small in order to facilitate faster log compaction and cache loads", "type": "integer", "default": 104857600}, "queued_max_requests": {"title": "queued.max.requests", "description": "The number of queued requests allowed before blocking the network threads ", "type": "integer", "default": 500}, "quota_consumer_default": {"title": "quota.consumer.default", "description": "Any consumer distinguished by clientId/consumer group will get throttled if it fetches more bytes than this value per-second", "type": "string", "default": "9223372036854775807"}, "quota_producer_default": {"title": "quota.producer.default", "description": "Any producer distinguished by clientId will get throttled if it produces more bytes than this value per-second", "type": "string", "default": "9223372036854775807"}, "replica_fetch_max_bytes": {"title": "replica.fetch.max.bytes", "description": "The number of byes of messages to attempt to fetch", "type": "integer", "default": 1048576}, "replica_fetch_min_bytes": {"title": "replica.fetch.min.bytes", "description": "Minimum bytes expected for each fetch response. If not enough bytes, wait up to replicaMaxWaitTimeMs", "type": "integer", "default": 1}, "replica_fetch_wait_max_ms": {"title": "replica.fetch.wait.max.ms", "description": "Max wait time for each fetcher request issued by follower replicas. This value should always be less than the replica.lag.time.max.ms at all times to prevent frequent shrinking of ISR for low throughput topics", "type": "integer", "default": 500}, "replica_high_watermark_checkpoint_interval_ms": {"title": "replica.high.watermark.checkpoint.interval.ms", "description": "The frequency with which the high watermark is saved out to disk", "type": "integer", "default": 5000}, "replica_lag_time_max_ms": {"title": "replica.lag.time.max.ms", "description": "If a follower hasn't sent any fetch requests or hasn't consumed up to the leaders log end offset for at least this time, the leader will remove the follower from isr", "type": "integer", "default": 10000}, "replica_socket_receive_buffer_bytes": {"title": "replica.socket.receive.buffer.bytes", "description": "The socket receive buffer for network requests", "type": "integer", "default": 65536}, "replica_socket_timeout_ms": {"title": "replica.socket.timeout.ms", "description": "The socket timeout for network requests. Its value should be at least replica.fetch.wait.max.ms", "type": "integer", "default": 30000}, "request_timeout_ms": {"title": "request.timeout.ms", "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.", "type": "integer", "default": 30000}, "socket_receive_buffer_bytes": {"title": "socket.receive.buffer.bytes", "description": "The SO_RCVBUF buffer of the socket sever sockets", "type": "integer", "default": 102400}, "socket_request_max_bytes": {"title": "socket.request.max.bytes", "description": "The maximum number of bytes in a socket request", "type": "integer", "default": 104857600}, "socket_send_buffer_bytes": {"title": "socket.send.buffer.bytes", "description": "The SO_SNDBUF buffer of the socket sever sockets", "type": "integer", "default": 102400}, "unclean_leader_election_enable": {"title": "unclean.leader.election.enable", "description": "Indicates whether to enable replicas not in the ISR set to be elected as leader as a last resort, even though doing so may result in data loss", "type": "boolean", "default": true}, "zookeeper_session_timeout_ms": {"title": "zookeeper.session.timeout.ms", "description": "Zookeeper session timeout", "type": "integer", "default": 6000}, "connections_max_idle_ms": {"title": "connections.max.idle.ms", "description": "Idle connections timeout: the server socket processor threads close the connections that idle more than this", "type": "integer", "default": 600000}, "controlled_shutdown_enable": {"title": "controlled.shutdown.enable", "description": "Enable controlled shutdown of the server", "type": "boolean", "default": true}, "controlled_shutdown_max_retries": {"title": "controlled.shutdown.max.retries", "description": "Controlled shutdown can fail for multiple reasons. This determines the number of retries when such failure happens", "type": "integer", "default": 3}, "controlled_shutdown_retry_backoff_ms": {"title": "controlled.shutdown.retry.backoff.ms", "description": "Before each retry, the system needs time to recover from the state that caused the previous failure (Controller fail over, replica lag etc). This config determines the amount of time to wait before retrying.", "type": "integer", "default": 5000}, "controller_socket_timeout_ms": {"title": "controller.socket.timeout.ms", "description": "The socket timeout for controller-to-broker channels", "type": "integer", "default": 30000}, "default_replication_factor": {"title": "default.replication.factor", "description": "Default replication factors for automatically created topics", "type": "integer", "default": 1}, "fetch_purgatory_purge_interval_requests": {"title": "fetch.purgatory.purge.interval.requests", "description": "The purge interval (in number of requests) of the fetch request purgatory", "type": "integer", "default": 1000}, "group_max_session_timeout_ms": {"title": "group.max.session.timeout.ms", "description": "The maximum allowed session timeout for registered consumers", "type": "integer", "default": 300000}, "group_min_session_timeout_ms": {"title": "group.min.session.timeout.ms", "description": "The minimum allowed session timeout for registered consumers", "type": "integer", "default": 6000}, "inter_broker_protocol_version": {"type": "string", "title": "inter.broker.protocol.version", "description": "Specify which version of the inter-broker protocol will be used, which must align with log.message.format.version. This is typically bumped after all brokers were upgraded to a new version. Example of some valid values are: 0.8.0, 0.8.1, 0.8.1.1, 0.8.2, 0.8.2.0, 0.8.2.1, 0.9.0.0, 0.9.0.1, 0.10.0.0. Check ApiVersion for the full list.", "default": "0.10.0.0"}, "log_message_format_version": {"type": "string", "title": "log.message.format.version", "description": "Specify which version of the log message format will be used, which must align with inter.broker.protocol.version. This is a new setting as of 0.10.0.0, and should be left at 0.9.0 until clients are updated to 0.10.0.x. Clients on earlier versions may see a performance penalty if this is increased before they've upgraded. See the latest Kafka documentation for details.", "default": "0.10.0"}, "log_cleaner_backoff_ms": {"title": "log.cleaner.backoff.ms", "description": "The amount of time to sleep when there are no logs to clean", "type": "integer", "default": 15000}, "log_cleaner_dedupe_buffer_size": {"title": "log.cleaner.dedupe.buffer.size", "description": "The total memory used for log deduplication across all cleaner threads", "type": "integer", "default": 134217728}, "log_cleaner_delete_retention_ms": {"title": "log.cleaner.delete.retention.ms", "description": "How long are delete records retained?", "type": "integer", "default": 86400000}, "log_cleaner_enable": {"title": "log.cleaner.enable", "description": "Enable the log cleaner process to run on the server? Should be enabled if using any topics with a cleanup.policy=compact including the internal offsets topic. If disabled those topics will not be compacted and continually grow in size.", "type": "boolean", "default": true}, "log_cleaner_io_buffer_load_factor": {"title": "log.cleaner.io.buffer.load.factor", "description": "Log cleaner dedupe buffer load factor. The percentage full the dedupe buffer can become. A higher value will allow more log to be cleaned at once but will lead to more hash collisions", "type": "number", "default": 0.9}, "log_cleaner_io_buffer_size": {"title": "log.cleaner.io.buffer.size", "description": "The total memory used for log cleaner I/O buffers across all cleaner threads", "type": "integer", "default": 524288}, "log_cleaner_io_max_bytes_per_second": {"title": "log.cleaner.io.max.bytes.per.second", "description": "The log cleaner will be throttled so that the sum of its read and write i/o will be less than this value on average", "type": "number", "default": 1.7976931348623157e+308}, "log_cleaner_min_cleanable_ratio": {"title": "log.cleaner.min.cleanable.ratio", "description": "The minimum ratio of dirty log to total log for a log to eligible for cleaning", "type": "number", "default": 0.5}, "log_cleaner_threads": {"title": "log.cleaner.threads", "description": "The number of background threads to use for log cleaning", "type": "integer", "default": 1}, "log_cleanup_policy": {"type": "string", "title": "log.cleanup.policy", "description": "The default cleanup policy for segments beyond the retention window, must be either 'delete' or 'compact'", "default": "delete"}, "log_index_interval_bytes": {"title": "log.index.interval.bytes", "description": "The interval with which we add an entry to the offset index", "type": "integer", "default": 4096}, "log_index_size_max_bytes": {"title": "log.index.size.max.bytes", "description": "The maximum size in bytes of the offset index", "type": "integer", "default": 10485760}, "log_preallocate": {"title": "log.preallocate", "description": "Should pre allocate file when create new segment? If you are using Kafka on Windows, you probably need to set it to true.", "type": "boolean", "default": false}, "log_retention_check_interval_ms": {"title": "log.retention.check.interval.ms", "description": "The frequency in milliseconds that the log cleaner checks whether any log is eligible for deletion", "type": "integer", "default": 300000}, "max_connections_per_ip": {"title": "max.connections.per.ip", "description": "mum number of connections we allow from each ip address", "type": "integer", "default": 2147483647}, "max_connections_per_ip_overrides": {"type": "string", "title": "max.connections.per.ip.overrides", "description": "Per-ip or hostname overrides to the default maximum number of connections", "default": ""}, "num_partitions": {"title": "num.partitions", "description": "The default number of log partitions per topic", "type": "integer", "default": 1}, "producer_purgatory_purge_interval_requests": {"title": "producer.purgatory.purge.interval.requests", "description": "The purge interval (in number of requests) of the producer request purgatory", "type": "integer", "default": 1000}, "replica_fetch_backoff_ms": {"title": "replica.fetch.backoff.ms", "description": "The amount of time to sleep when fetch partition error occurs.", "type": "integer", "default": 1000}, "reserved_broker_max_id": {"title": "reserved.broker.max.id", "description": "Max number that can be used for a broker.id", "type": "integer", "default": 1000}, "metrics_num_samples": {"title": "metrics.num.samples", "description": "The number of samples maintained to compute metrics.", "type": "integer", "default": 2}, "metrics_sample_window_ms": {"title": "metrics.sample.window.ms", "description": "The number of samples maintained to compute metrics.", "type": "integer", "default": 30000}, "quota_window_num": {"title": "quota.window.num", "description": "The number of samples to retain in memory", "type": "integer", "default": 11}, "quota_window_size_seconds": {"title": "quota.window.size.seconds", "description": "The time span of each sample", "type": "integer", "default": 1}, "zookeeper_sync_time_ms": {"title": "zookeeper.sync.time.ms", "description": "How far a ZK follower can be behind a ZK leader", "type": "integer", "default": 2000}}}}}, "version": "1.1.11-0.10.0.0", "postInstallNotes": "DC/OS Kafka Service is being installed.\n\n\tDocumentation: https://docs.mesosphere.com/usage/services/kafka/\n\tIssues: https://docs.mesosphere.com/support/", "framework": true, "description": "Apache Kafka running on DC/OS"}, {"tags": ["loadbalancer", "service-discovery", "reverse-proxy", "proxy", "haproxy"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICJ7e21hcmF0aG9uLWxiLm5hbWV9fSIsCiAgImluc3RhbmNlcyI6IHt7bWFyYXRob24tbGIuaW5zdGFuY2VzfX0sCiAgImNwdXMiOiB7e21hcmF0aG9uLWxiLmNwdXN9fSwKICAibWVtIjoge3ttYXJhdGhvbi1sYi5tZW19fSwKICAibWFpbnRhaW5lciI6ICJzdXBwb3J0QG1lc29zcGhlcmUuaW8iLAogICJjb250YWluZXIiOiB7CiAgICAidHlwZSI6ICJET0NLRVIiLAogICAgImRvY2tlciI6IHsKICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIubWFyYXRob24tbGItZG9ja2VyfX0iLAogICAgICAibmV0d29yayI6ICJIT1NUIiwKICAgICAgInByaXZpbGVnZWQiOiB0cnVlCiAgICB9CiAgfSwKICB7eyNtYXJhdGhvbi1sYi5yb2xlfX0KICAiYWNjZXB0ZWRSZXNvdXJjZVJvbGVzIjogWwogICAgInt7bWFyYXRob24tbGIucm9sZX19IgogIF0sCiAge3svbWFyYXRob24tbGIucm9sZX19CiAgImhlYWx0aENoZWNrcyI6IFsKICAgIHsKICAgICAgInBhdGgiOiAiL19oYXByb3h5X2hlYWx0aF9jaGVjayIsCiAge3sjbWFyYXRob24tbGIuYmluZC1odHRwLWh0dHBzfX0KICAgICAgInBvcnRJbmRleCI6IDIsCiAge3svbWFyYXRob24tbGIuYmluZC1odHRwLWh0dHBzfX0KICB7e15tYXJhdGhvbi1sYi5iaW5kLWh0dHAtaHR0cHN9fQogICAgICAicG9ydEluZGV4IjogMCwKICB7ey9tYXJhdGhvbi1sYi5iaW5kLWh0dHAtaHR0cHN9fQogICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICJncmFjZVBlcmlvZFNlY29uZHMiOiA2MCwKICAgICAgImludGVydmFsU2Vjb25kcyI6IDUsCiAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMiwKICAgICAgImlnbm9yZUh0dHAxeHgiOiBmYWxzZQogICAgfQogIF0sCiAgInVwZ3JhZGVTdHJhdGVneSI6IHsKICAgICJtaW5pbXVtSGVhbHRoQ2FwYWNpdHkiOiB7e21hcmF0aG9uLWxiLm1pbmltdW1IZWFsdGhDYXBhY2l0eX19LAogICAgIm1heGltdW1PdmVyQ2FwYWNpdHkiOiB7e21hcmF0aG9uLWxiLm1heGltdW1PdmVyQ2FwYWNpdHl9fQogIH0sCiAgImFyZ3MiOlsKICAgICJzc2UiLAogICAgIi1tIiwgInt7bWFyYXRob24tbGIubWFyYXRob24tdXJpfX0iLAogICAgIi0taGVhbHRoLWNoZWNrIiwKICB7e15tYXJhdGhvbi1sYi5iaW5kLWh0dHAtaHR0cHN9fQogICAgIi0tZG9udC1iaW5kLWh0dHAtaHR0cHMiLAogIHt7L21hcmF0aG9uLWxiLmJpbmQtaHR0cC1odHRwc319CiAge3sjbWFyYXRob24tbGIuaGFwcm94eS1tYXB9fQogICAgIi0taGFwcm94eS1tYXAiLAogIHt7L21hcmF0aG9uLWxiLmhhcHJveHktbWFwfX0KICB7eyNtYXJhdGhvbi1sYi5hdXRvLWFzc2lnbi1zZXJ2aWNlLXBvcnRzfX0KICAgICItLW1pbi1zZXJ2LXBvcnQtaXAtcGVyLXRhc2siLCAiMTAxMDEiLAogICAgIi0tbWF4LXNlcnYtcG9ydC1pcC1wZXItdGFzayIsICIxMDE1MCIsCiAge3svbWFyYXRob24tbGIuYXV0by1hc3NpZ24tc2VydmljZS1wb3J0c319CiAgICAiLS1ncm91cCIsICJ7e21hcmF0aG9uLWxiLmhhcHJveHktZ3JvdXB9fSIKICBdLAogICJyZXF1aXJlUG9ydHMiOnRydWUsCiAge3sjbWFyYXRob24tbGIudGVtcGxhdGUtdXJsfX0KICAidXJpcyI6IFsgInt7bWFyYXRob24tbGIudGVtcGxhdGUtdXJsfX0iIF0sCiAge3svbWFyYXRob24tbGIudGVtcGxhdGUtdXJsfX0KICAiZW52IjogewogICAge3sjbWFyYXRob24tbGIuc2VjcmV0X25hbWV9fQogICAgIkRDT1NfU0VSVklDRV9BQ0NPVU5UX0NSRURFTlRJQUwiOiB7ICJzZWNyZXQiOiAic2VydmljZUNyZWRlbnRpYWwiIH0sCiAgICB7ey9tYXJhdGhvbi1sYi5zZWNyZXRfbmFtZX19CiAgICAiSEFQUk9YWV9TU0xfQ0VSVCI6ICJ7e21hcmF0aG9uLWxiLnNzbC1jZXJ0fX0iLAogICAgIkhBUFJPWFlfU1lTQ1RMX1BBUkFNUyI6ICJ7e21hcmF0aG9uLWxiLnN5c2N0bC1wYXJhbXN9fSIKICB9LAogIHt7I21hcmF0aG9uLWxiLnNlY3JldF9uYW1lfX0KICAic2VjcmV0cyI6IHsKICAgICJzZXJ2aWNlQ3JlZGVudGlhbCI6IHsKICAgICAgInNvdXJjZSI6ICJ7e21hcmF0aG9uLWxiLnNlY3JldF9uYW1lfX0iCiAgICB9CiAgfSwKICB7ey9tYXJhdGhvbi1sYi5zZWNyZXRfbmFtZX19CiAgInBvcnRzIjogWwogIHt7I21hcmF0aG9uLWxiLmJpbmQtaHR0cC1odHRwc319CiAgICA4MCwKICAgIDQ0MywKICB7ey9tYXJhdGhvbi1sYi5iaW5kLWh0dHAtaHR0cHN9fQogICAgOTA5MCwKICAgIDkwOTEsCiAgICAxMDAwMCwKICAgIDEwMDAxLAogICAgMTAwMDIsCiAgICAxMDAwMywKICAgIDEwMDA0LAogICAgMTAwMDUsCiAgICAxMDAwNiwKICAgIDEwMDA3LAogICAgMTAwMDgsCiAgICAxMDAwOSwKICAgIDEwMDEwLAogICAgMTAwMTEsCiAgICAxMDAxMiwKICAgIDEwMDEzLAogICAgMTAwMTQsCiAgICAxMDAxNSwKICAgIDEwMDE2LAogICAgMTAwMTcsCiAgICAxMDAxOCwKICAgIDEwMDE5LAogICAgMTAwMjAsCiAgICAxMDAyMSwKICAgIDEwMDIyLAogICAgMTAwMjMsCiAgICAxMDAyNCwKICAgIDEwMDI1LAogICAgMTAwMjYsCiAgICAxMDAyNywKICAgIDEwMDI4LAogICAgMTAwMjksCiAgICAxMDAzMCwKICAgIDEwMDMxLAogICAgMTAwMzIsCiAgICAxMDAzMywKICAgIDEwMDM0LAogICAgMTAwMzUsCiAgICAxMDAzNiwKICAgIDEwMDM3LAogICAgMTAwMzgsCiAgICAxMDAzOSwKICAgIDEwMDQwLAogICAgMTAwNDEsCiAgICAxMDA0MiwKICAgIDEwMDQzLAogICAgMTAwNDQsCiAgICAxMDA0NSwKICAgIDEwMDQ2LAogICAgMTAwNDcsCiAgICAxMDA0OCwKICAgIDEwMDQ5LAogICAgMTAwNTAsCiAgICAxMDA1MSwKICAgIDEwMDUyLAogICAgMTAwNTMsCiAgICAxMDA1NCwKICAgIDEwMDU1LAogICAgMTAwNTYsCiAgICAxMDA1NywKICAgIDEwMDU4LAogICAgMTAwNTksCiAgICAxMDA2MCwKICAgIDEwMDYxLAogICAgMTAwNjIsCiAgICAxMDA2MywKICAgIDEwMDY0LAogICAgMTAwNjUsCiAgICAxMDA2NiwKICAgIDEwMDY3LAogICAgMTAwNjgsCiAgICAxMDA2OSwKICAgIDEwMDcwLAogICAgMTAwNzEsCiAgICAxMDA3MiwKICAgIDEwMDczLAogICAgMTAwNzQsCiAgICAxMDA3NSwKICAgIDEwMDc2LAogICAgMTAwNzcsCiAgICAxMDA3OCwKICAgIDEwMDc5LAogICAgMTAwODAsCiAgICAxMDA4MSwKICAgIDEwMDgyLAogICAgMTAwODMsCiAgICAxMDA4NCwKICAgIDEwMDg1LAogICAgMTAwODYsCiAgICAxMDA4NywKICAgIDEwMDg4LAogICAgMTAwODksCiAgICAxMDA5MCwKICAgIDEwMDkxLAogICAgMTAwOTIsCiAgICAxMDA5MywKICAgIDEwMDk0LAogICAgMTAwOTUsCiAgICAxMDA5NiwKICAgIDEwMDk3LAogICAgMTAwOTgsCiAgICAxMDA5OSwKICAgIDEwMTAwCiAge3sjbWFyYXRob24tbGIuYXV0by1hc3NpZ24tc2VydmljZS1wb3J0c319CiAgICAsCiAgICAxMDEwMSwKICAgIDEwMTAyLAogICAgMTAxMDMsCiAgICAxMDEwNCwKICAgIDEwMTA1LAogICAgMTAxMDYsCiAgICAxMDEwNywKICAgIDEwMTA4LAogICAgMTAxMDksCiAgICAxMDExMCwKICAgIDEwMTExLAogICAgMTAxMTIsCiAgICAxMDExMywKICAgIDEwMTE0LAogICAgMTAxMTUsCiAgICAxMDExNiwKICAgIDEwMTE3LAogICAgMTAxMTgsCiAgICAxMDExOSwKICAgIDEwMTIwLAogICAgMTAxMjEsCiAgICAxMDEyMiwKICAgIDEwMTIzLAogICAgMTAxMjQsCiAgICAxMDEyNSwKICAgIDEwMTI2LAogICAgMTAxMjcsCiAgICAxMDEyOCwKICAgIDEwMTI5LAogICAgMTAxMzAsCiAgICAxMDEzMSwKICAgIDEwMTMyLAogICAgMTAxMzMsCiAgICAxMDEzNCwKICAgIDEwMTM1LAogICAgMTAxMzYsCiAgICAxMDEzNywKICAgIDEwMTM4LAogICAgMTAxMzksCiAgICAxMDE0MCwKICAgIDEwMTQxLAogICAgMTAxNDIsCiAgICAxMDE0MywKICAgIDEwMTQ0LAogICAgMTAxNDUsCiAgICAxMDE0NiwKICAgIDEwMTQ3LAogICAgMTAxNDgsCiAgICAxMDE0OSwKICAgIDEwMTUwCiAge3svbWFyYXRob24tbGIuYXV0by1hc3NpZ24tc2VydmljZS1wb3J0c319CiAgXQp9Cg=="}, "command": null, "scm": "https://github.com/mesosphere/marathon-lb", "preInstallNotes": "We recommend a minimum of 0.5 CPUs and 256 MB of RAM available for the Marathon-LB DCOS Service.", "resource": {"images": {"icon-small": "http://master.mesos:8082/marathon-lb/images/icon-service-marathonlb-small.png", "icon-medium": "http://master.mesos:8082/marathon-lb/images/icon-service-marathonlb-medium.png", "icon-large": "http://master.mesos:8082/marathon-lb/images/icon-service-marathonlb-large.png"}, "assets": {"uris": {}, "container": {"docker": {"marathon-lb-docker": "master.mesos:5000/mesosphere/marathon-lb:v1.3.5"}}}}, "packagingVersion": "2.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "Marathon-lb DCOS Service has been uninstalled and will no longer run.", "releaseVersion": 11, "config": {"$schema": "http://json-schema.org/schema#", "properties": {"marathon-lb": {"properties": {"auto-assign-service-ports": {"default": false, "description": "Auto assign service ports for tasks which use IP-per-task. See https://github.com/mesosphere/marathon-lb#mesos-with-ip-per-task-support for details.", "type": "boolean"}, "bind-http-https": {"default": true, "description": "Reserve ports 80 and 443 for the LB. Use this if you intend to use virtual hosts.", "type": "boolean"}, "cpus": {"default": 2, "description": "CPU shares to allocate to each marathon-lb instance.", "minimum": 1, "type": "number"}, "haproxy-group": {"default": "external", "description": "HAProxy group parameter. Matches with HAPROXY_GROUP in the app labels.", "type": "string"}, "haproxy-map": {"default": true, "description": "Enable HAProxy VHost maps for fast VHost routing.", "type": "boolean"}, "instances": {"default": 1, "description": "Number of instances to run.", "minimum": 1, "type": "integer"}, "mem": {"default": 1024.0, "description": "Memory (MB) to allocate to each marathon-lb task.", "minimum": 256.0, "type": "number"}, "minimumHealthCapacity": {"default": 0.5, "description": "Minimum health capacity.", "minimum": 0, "type": "number"}, "maximumOverCapacity": {"default": 0.2, "description": "Maximum over capacity.", "minimum": 0, "type": "number"}, "name": {"default": "marathon-lb", "description": "Name for this LB instance", "type": "string"}, "role": {"default": "slave_public", "description": "Deploy marathon-lb only on nodes with this role.", "type": "string"}, "ssl-cert": {"description": "TLS Cert and private key for HTTPS.", "type": "string"}, "sysctl-params": {"default": "net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=30 net.ipv4.tcp_max_syn_backlog=10240 net.ipv4.tcp_max_tw_buckets=400000 net.ipv4.tcp_max_orphans=60000 net.core.somaxconn=10000", "description": "sysctl params to set at startup for HAProxy.", "type": "string"}, "template-url": {"default": "", "description": "URL to tarball containing a directory templates/ to customize haproxy config.", "type": "string"}, "marathon-uri": {"default": "http://master.mesos:8080", "description": "URI of Marathon instance", "type": "string"}, "secret_name": {"description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", "type": "string", "default": ""}}, "required": ["cpus", "mem", "haproxy-group", "instances", "name"], "type": "object"}}, "type": "object"}, "version": "1.3.5", "postInstallNotes": "Marathon-lb DCOS Service has been successfully installed!\nSee https://github.com/mesosphere/marathon-lb for documentation.", "description": "HAProxy configured using Marathon state", "licenses": [{"url": "https://github.com/mesosphere/marathon/blob/master/LICENSE", "name": "Apache License Version 2.0"}, {"url": "http://www.haproxy.org/download/1.6/doc/LICENSE", "name": "GNU General Public License version 2"}], "name": "marathon-lb"}, {"tags": ["init", "long-running"], "selected": true, "marathon": {"v2AppMustacheTemplate": "CnsKICAiaWQiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgImNwdXMiOiB7e3NlcnZpY2UuY3B1c319LAogICJtZW0iOiB7e3NlcnZpY2UubWVtfX0sCiAgImluc3RhbmNlcyI6IHt7c2VydmljZS5pbnN0YW5jZXN9fSwKICAiY29uc3RyYWludHMiOiBbWyJob3N0bmFtZSIsICJVTklRVUUiXV0sCiAgInBvcnRzIjogWwogICAge3sjbWFyYXRob24uaHR0cC1wb3J0fX17e21hcmF0aG9uLmh0dHAtcG9ydH19e3svbWFyYXRob24uaHR0cC1wb3J0fX17e15tYXJhdGhvbi5odHRwLXBvcnR9fTB7ey9tYXJhdGhvbi5odHRwLXBvcnR9fQogICAgLCAwCiAgICB7eyNtYXJhdGhvbi5zc2wta2V5c3RvcmUtcGF0aH19CiAgICB7eyNtYXJhdGhvbi5zc2wta2V5c3RvcmUtcGFzc3dvcmR9fQogICAgLCB7eyNtYXJhdGhvbi5odHRwcy1wb3J0fX17e21hcmF0aG9uLmh0dHBzLXBvcnR9fXt7L21hcmF0aG9uLmh0dHBzLXBvcnR9fXt7Xm1hcmF0aG9uLmh0dHBzLXBvcnR9fTB7ey9tYXJhdGhvbi5odHRwcy1wb3J0fX0KICAgIHt7L21hcmF0aG9uLnNzbC1rZXlzdG9yZS1wYXNzd29yZH19CiAgICB7ey9tYXJhdGhvbi5zc2wta2V5c3RvcmUtcGF0aH19CiAgXSwKICAidXJpcyI6IHt7c2VydmljZS51cmlzfX0sCiAgImhlYWx0aENoZWNrcyI6IFsKICAgIHsKICAgICAgImdyYWNlUGVyaW9kU2Vjb25kcyI6IDEyMCwKICAgICAgImludGVydmFsU2Vjb25kcyI6IDEwLAogICAgICAibWF4Q29uc2VjdXRpdmVGYWlsdXJlcyI6IDMsCiAgICAgICJwYXRoIjogIi9waW5nIiwKICAgICAgInBvcnRJbmRleCI6IDAsCiAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogNQogICAgfQogIF0sCiAgImNvbnRhaW5lciI6IHsKICAgICJ0eXBlIjogIkRPQ0tFUiIsCiAgICAiZG9ja2VyIjogewogICAgICAiaW1hZ2UiOiAibWVzb3NwaGVyZS9tYXJhdGhvbjp2MS4xLjEiLAogICAgICAibmV0d29yayI6ICJIT1NUIgogICAgfQogIH0sCiAgImVudiI6IHsKICAgICJKVk1fT1BUUyI6ICItWG1ze3tqdm0uaGVhcC1taW59fW0gLVhteHt7anZtLmhlYXAtbWF4fX1tIgogIH0sCiAgImNtZCI6ICJMSUJQUk9DRVNTX1BPUlQ9JFBPUlQxICYmIC4vYmluL3N0YXJ0IHt7I21hcmF0aG9uLmFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbn19LS1hY2Nlc3NfY29udHJvbF9hbGxvd19vcmlnaW4gXCJ7e21hcmF0aG9uLmFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbn19XCJ7ey9tYXJhdGhvbi5hY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW59fSB7eyNtYXJhdGhvbi5hcnRpZmFjdC1zdG9yZX19LS1hcnRpZmFjdF9zdG9yZSBcInt7bWFyYXRob24uYXJ0aWZhY3Qtc3RvcmV9fVwie3svbWFyYXRob24uYXJ0aWZhY3Qtc3RvcmV9fSB7eyNtYXJhdGhvbi5hc3NldHMtcGF0aH19LS1hc3NldHNfcGF0aCBcInt7bWFyYXRob24uYXNzZXRzLXBhdGh9fVwie3svbWFyYXRob24uYXNzZXRzLXBhdGh9fSB7eyNtYXJhdGhvbi5jaGVja3BvaW50fX0gLS1jaGVja3BvaW50e3svbWFyYXRob24uY2hlY2twb2ludH19e3tebWFyYXRob24uY2hlY2twb2ludH19LS1kaXNhYmxlX2NoZWNrcG9pbnR7ey9tYXJhdGhvbi5jaGVja3BvaW50fX0ge3sjbWFyYXRob24uZGVjbGluZS1vZmZlci1kdXJhdGlvbn19LS1kZWNsaW5lX29mZmVyX2R1cmF0aW9uIFwie3ttYXJhdGhvbi5kZWNsaW5lLW9mZmVyLWR1cmF0aW9ufX1cInt7L21hcmF0aG9uLmRlY2xpbmUtb2ZmZXItZHVyYXRpb259fSB7eyNtYXJhdGhvbi5kZWZhdWx0LWFjY2VwdGVkLXJlc291cmNlLXJvbGVzfX0tLWRlZmF1bHRfYWNjZXB0ZWRfcmVzb3VyY2Vfcm9sZXMgXCJ7e21hcmF0aG9uLmRlZmF1bHQtYWNjZXB0ZWQtcmVzb3VyY2Utcm9sZXN9fVwie3svbWFyYXRob24uZGVmYXVsdC1hY2NlcHRlZC1yZXNvdXJjZS1yb2xlc319IHt7I21hcmF0aG9uLmRpc2FibGUtaHR0cH19LS1kaXNhYmxlX2h0dHB7ey9tYXJhdGhvbi5kaXNhYmxlLWh0dHB9fSB7eyNtYXJhdGhvbi5lbmFibGUtZmVhdHVyZXN9fS0tZW5hYmxlX2ZlYXR1cmVzIFwie3ttYXJhdGhvbi5lbmFibGUtZmVhdHVyZXN9fVwie3svbWFyYXRob24uZW5hYmxlLWZlYXR1cmVzfX0ge3sjbWFyYXRob24uZW52LXZhcnMtcHJlZml4fX0tLWVudl92YXJzX3ByZWZpeCBcInt7bWFyYXRob24uZW52LXZhcnMtcHJlZml4fX1cInt7L21hcmF0aG9uLmVudi12YXJzLXByZWZpeH19IHt7I21hcmF0aG9uLmV2ZW50LXN0cmVhbS1tYXgtb3V0c3RhbmRpbmctbWVzc2FnZXN9fS0tZXZlbnRfc3RyZWFtX21heF9vdXRzdGFuZGluZ19tZXNzYWdlcyBcInt7bWFyYXRob24uZXZlbnQtc3RyZWFtLW1heC1vdXRzdGFuZGluZy1tZXNzYWdlc319XCJ7ey9tYXJhdGhvbi5ldmVudC1zdHJlYW0tbWF4LW91dHN0YW5kaW5nLW1lc3NhZ2VzfX0ge3sjbWFyYXRob24uZXZlbnQtc3Vic2NyaWJlcn19LS1ldmVudF9zdWJzY3JpYmVyIFwie3ttYXJhdGhvbi5ldmVudC1zdWJzY3JpYmVyfX1cInt7L21hcmF0aG9uLmV2ZW50LXN1YnNjcmliZXJ9fSB7eyNtYXJhdGhvbi5leGVjdXRvcn19LS1leGVjdXRvciBcInt7bWFyYXRob24uZXhlY3V0b3J9fVwie3svbWFyYXRob24uZXhlY3V0b3J9fSB7eyNtYXJhdGhvbi5mYWlsb3Zlci10aW1lb3V0fX0tLWZhaWxvdmVyX3RpbWVvdXQgXCJ7e21hcmF0aG9uLmZhaWxvdmVyLXRpbWVvdXR9fVwie3svbWFyYXRob24uZmFpbG92ZXItdGltZW91dH19IC0tZnJhbWV3b3JrX25hbWUge3sjbWFyYXRob24uZnJhbWV3b3JrLW5hbWV9fXt7bWFyYXRob24uZnJhbWV3b3JrLW5hbWV9fXt7L21hcmF0aG9uLmZyYW1ld29yay1uYW1lfX17e15tYXJhdGhvbi5mcmFtZXdvcmstbmFtZX19e3tzZXJ2aWNlLm5hbWV9fXt7L21hcmF0aG9uLmZyYW1ld29yay1uYW1lfX0ge3sjbWFyYXRob24uaGF9fSAtLWhhe3svbWFyYXRob24uaGF9fXt7Xm1hcmF0aG9uLmhhfX0tLWRpc2FibGVfaGF7ey9tYXJhdGhvbi5oYX19IC0taG9zdG5hbWUge3sjbWFyYXRob24uaG9zdG5hbWV9fXt7bWFyYXRob24uaG9zdG5hbWV9fXt7L21hcmF0aG9uLmhvc3RuYW1lfX17e15tYXJhdGhvbi5ob3N0bmFtZX19JExJQlBST0NFU1NfSVB7ey9tYXJhdGhvbi5ob3N0bmFtZX19IHt7I21hcmF0aG9uLmh0dHAtYWRkcmVzc319LS1odHRwX2FkZHJlc3MgXCJ7e21hcmF0aG9uLmh0dHAtYWRkcmVzc319XCJ7ey9tYXJhdGhvbi5odHRwLWFkZHJlc3N9fSB7eyNtYXJhdGhvbi5odHRwLWNyZWRlbnRpYWxzfX0tLWh0dHBfY3JlZGVudGlhbHMgXCJ7e21hcmF0aG9uLmh0dHAtY3JlZGVudGlhbHN9fVwie3svbWFyYXRob24uaHR0cC1jcmVkZW50aWFsc319IHt7I21hcmF0aG9uLmh0dHAtZW5kcG9pbnRzfX0tLWh0dHBfZW5kcG9pbnRzIFwie3ttYXJhdGhvbi5odHRwLWVuZHBvaW50c319XCJ7ey9tYXJhdGhvbi5odHRwLWVuZHBvaW50c319IHt7I21hcmF0aG9uLmh0dHAtZXZlbnQtY2FsbGJhY2stc2xvdy1jb25zdW1lci10aW1lb3V0fX0tLWh0dHBfZXZlbnRfY2FsbGJhY2tfc2xvd19jb25zdW1lcl90aW1lb3V0IFwie3ttYXJhdGhvbi5odHRwLWV2ZW50LWNhbGxiYWNrLXNsb3ctY29uc3VtZXItdGltZW91dH19XCJ7ey9tYXJhdGhvbi5odHRwLWV2ZW50LWNhbGxiYWNrLXNsb3ctY29uc3VtZXItdGltZW91dH19IHt7I21hcmF0aG9uLmh0dHAtbWF4LWNvbmN1cnJlbnQtcmVxdWVzdHN9fS0taHR0cF9tYXhfY29uY3VycmVudF9yZXF1ZXN0cyBcInt7bWFyYXRob24uaHR0cC1tYXgtY29uY3VycmVudC1yZXF1ZXN0c319XCJ7ey9tYXJhdGhvbi5odHRwLW1heC1jb25jdXJyZW50LXJlcXVlc3RzfX0gLS1odHRwX3BvcnQge3sjbWFyYXRob24uaHR0cC1wb3J0fX17e21hcmF0aG9uLmh0dHAtcG9ydH19e3svbWFyYXRob24uaHR0cC1wb3J0fX17e15tYXJhdGhvbi5odHRwLXBvcnR9fSAkUE9SVDAge3svbWFyYXRob24uaHR0cC1wb3J0fX0ge3sjbWFyYXRob24uaHR0cC1yZWFsbX19LS1odHRwX3JlYWxtIFwie3ttYXJhdGhvbi5odHRwLXJlYWxtfX1cInt7L21hcmF0aG9uLmh0dHAtcmVhbG19fSB7eyNtYXJhdGhvbi5odHRwcy1hZGRyZXNzfX0tLWh0dHBzX2FkZHJlc3MgXCJ7e21hcmF0aG9uLmh0dHBzLWFkZHJlc3N9fVwie3svbWFyYXRob24uaHR0cHMtYWRkcmVzc319IHt7I21hcmF0aG9uLnNzbC1rZXlzdG9yZS1wYXRofX0tLWh0dHBzX3BvcnQge3sjbWFyYXRob24uaHR0cHMtcG9ydH19e3ttYXJhdGhvbi5odHRwcy1wb3J0fX17ey9tYXJhdGhvbi5odHRwcy1wb3J0fX17e15tYXJhdGhvbi5odHRwcy1wb3J0fX0gJFBPUlQyIHt7L21hcmF0aG9uLmh0dHBzLXBvcnR9fXt7L21hcmF0aG9uLnNzbC1rZXlzdG9yZS1wYXRofX0ge3sjbWFyYXRob24ubGF1bmNoLXRva2VuLXJlZnJlc2gtaW50ZXJ2YWx9fS0tbGF1bmNoX3Rva2VuX3JlZnJlc2hfaW50ZXJ2YWwgXCJ7e21hcmF0aG9uLmxhdW5jaC10b2tlbi1yZWZyZXNoLWludGVydmFsfX1cInt7L21hcmF0aG9uLmxhdW5jaC10b2tlbi1yZWZyZXNoLWludGVydmFsfX0ge3sjbWFyYXRob24ubGF1bmNoLXRva2Vuc319LS1sYXVuY2hfdG9rZW5zIFwie3ttYXJhdGhvbi5sYXVuY2gtdG9rZW5zfX1cInt7L21hcmF0aG9uLmxhdW5jaC10b2tlbnN9fSB7eyNtYXJhdGhvbi5sZWFkZXItcHJveHktY29ubmVjdGlvbi10aW1lb3V0fX0tLWxlYWRlcl9wcm94eV9jb25uZWN0aW9uX3RpbWVvdXQgXCJ7e21hcmF0aG9uLmxlYWRlci1wcm94eS1jb25uZWN0aW9uLXRpbWVvdXR9fVwie3svbWFyYXRob24ubGVhZGVyLXByb3h5LWNvbm5lY3Rpb24tdGltZW91dH19IHt7I21hcmF0aG9uLmxlYWRlci1wcm94eS1yZWFkLXRpbWVvdXR9fS0tbGVhZGVyX3Byb3h5X3JlYWRfdGltZW91dCBcInt7bWFyYXRob24ubGVhZGVyLXByb3h5LXJlYWQtdGltZW91dH19XCJ7ey9tYXJhdGhvbi5sZWFkZXItcHJveHktcmVhZC10aW1lb3V0fX0ge3sjbWFyYXRob24ubG9jYWwtcG9ydC1tYXh9fS0tbG9jYWxfcG9ydF9tYXggXCJ7e21hcmF0aG9uLmxvY2FsLXBvcnQtbWF4fX1cInt7L21hcmF0aG9uLmxvY2FsLXBvcnQtbWF4fX0ge3sjbWFyYXRob24ubG9jYWwtcG9ydC1taW59fS0tbG9jYWxfcG9ydF9taW4gXCJ7e21hcmF0aG9uLmxvY2FsLXBvcnQtbWlufX1cInt7L21hcmF0aG9uLmxvY2FsLXBvcnQtbWlufX0ge3sjbWFyYXRob24ubG9nZ2luZy1sZXZlbH19LS1sb2dnaW5nX2xldmVsIFwie3ttYXJhdGhvbi5sb2dnaW5nLWxldmVsfX1cInt7L21hcmF0aG9uLmxvZ2dpbmctbGV2ZWx9fSB7eyNtYXJhdGhvbi5tYXJhdGhvbi1zdG9yZS10aW1lb3V0fX0tLW1hcmF0aG9uX3N0b3JlX3RpbWVvdXQgXCJ7e21hcmF0aG9uLm1hcmF0aG9uLXN0b3JlLXRpbWVvdXR9fVwie3svbWFyYXRob24ubWFyYXRob24tc3RvcmUtdGltZW91dH19IHt7I21hcmF0aG9uLm1hc3Rlcn19LS1tYXN0ZXIgXCJ7e21hcmF0aG9uLm1hc3Rlcn19XCJ7ey9tYXJhdGhvbi5tYXN0ZXJ9fSB7eyNtYXJhdGhvbi5tYXgtYXBwc319LS1tYXhfYXBwcyBcInt7bWFyYXRob24ubWF4LWFwcHN9fVwie3svbWFyYXRob24ubWF4LWFwcHN9fSB7eyNtYXJhdGhvbi5tYXgtdGFza3MtcGVyLW9mZmVyfX0tLW1heF90YXNrc19wZXJfb2ZmZXIgXCJ7e21hcmF0aG9uLm1heC10YXNrcy1wZXItb2ZmZXJ9fVwie3svbWFyYXRob24ubWF4LXRhc2tzLXBlci1vZmZlcn19IC0tbWVzb3NfYXV0aGVudGljYXRpb25fcHJpbmNpcGFsIHt7I21hcmF0aG9uLm1lc29zLWF1dGhlbnRpY2F0aW9uLXByaW5jaXBhbH19e3ttYXJhdGhvbi5tZXNvcy1hdXRoZW50aWNhdGlvbi1wcmluY2lwYWx9fXt7L21hcmF0aG9uLm1lc29zLWF1dGhlbnRpY2F0aW9uLXByaW5jaXBhbH19e3tebWFyYXRob24ubWVzb3MtYXV0aGVudGljYXRpb24tcHJpbmNpcGFsfX17e3NlcnZpY2UubmFtZX19e3svbWFyYXRob24ubWVzb3MtYXV0aGVudGljYXRpb24tcHJpbmNpcGFsfX0ge3sjbWFyYXRob24ubWVzb3MtYXV0aGVudGljYXRpb24tc2VjcmV0LWZpbGV9fS0tbWVzb3NfYXV0aGVudGljYXRpb25fc2VjcmV0X2ZpbGUgXCJ7e21hcmF0aG9uLm1lc29zLWF1dGhlbnRpY2F0aW9uLXNlY3JldC1maWxlfX1cInt7L21hcmF0aG9uLm1lc29zLWF1dGhlbnRpY2F0aW9uLXNlY3JldC1maWxlfX0ge3sjbWFyYXRob24ubWVzb3MtbGVhZGVyLXVpLXVybH19LS1tZXNvc19sZWFkZXJfdWlfdXJsIFwie3ttYXJhdGhvbi5tZXNvcy1sZWFkZXItdWktdXJsfX1cInt7L21hcmF0aG9uLm1lc29zLWxlYWRlci11aS11cmx9fSAtLW1lc29zX3JvbGUge3sjbWFyYXRob24ubWVzb3Mtcm9sZX19e3ttYXJhdGhvbi5tZXNvcy1yb2xlfX17ey9tYXJhdGhvbi5tZXNvcy1yb2xlfX17e15tYXJhdGhvbi5tZXNvcy1yb2xlfX17e3NlcnZpY2UubmFtZX19e3svbWFyYXRob24ubWVzb3Mtcm9sZX19IHt7I21hcmF0aG9uLm1lc29zLXVzZXJ9fS0tbWVzb3NfdXNlciBcInt7bWFyYXRob24ubWVzb3MtdXNlcn19XCJ7ey9tYXJhdGhvbi5tZXNvcy11c2VyfX0ge3sjbWFyYXRob24ubWV0cmljc319IC0tbWV0cmljc3t7L21hcmF0aG9uLm1ldHJpY3N9fXt7Xm1hcmF0aG9uLm1ldHJpY3N9fS0tZGlzYWJsZV9tZXRyaWNze3svbWFyYXRob24ubWV0cmljc319IHt7I21hcmF0aG9uLm1pbi1yZXZpdmUtb2ZmZXJzLWludGVydmFsfX0tLW1pbl9yZXZpdmVfb2ZmZXJzX2ludGVydmFsIFwie3ttYXJhdGhvbi5taW4tcmV2aXZlLW9mZmVycy1pbnRlcnZhbH19XCJ7ey9tYXJhdGhvbi5taW4tcmV2aXZlLW9mZmVycy1pbnRlcnZhbH19IHt7I21hcmF0aG9uLm9mZmVyLW1hdGNoaW5nLXRpbWVvdXR9fS0tb2ZmZXJfbWF0Y2hpbmdfdGltZW91dCBcInt7bWFyYXRob24ub2ZmZXItbWF0Y2hpbmctdGltZW91dH19XCJ7ey9tYXJhdGhvbi5vZmZlci1tYXRjaGluZy10aW1lb3V0fX0ge3sjbWFyYXRob24ub24tZWxlY3RlZC1wcmVwYXJlLXRpbWVvdXR9fS0tb25fZWxlY3RlZF9wcmVwYXJlX3RpbWVvdXQgXCJ7e21hcmF0aG9uLm9uLWVsZWN0ZWQtcHJlcGFyZS10aW1lb3V0fX1cInt7L21hcmF0aG9uLm9uLWVsZWN0ZWQtcHJlcGFyZS10aW1lb3V0fX0ge3sjbWFyYXRob24ucGx1Z2luLWNvbmZ9fS0tcGx1Z2luX2NvbmYgXCJ7e21hcmF0aG9uLnBsdWdpbi1jb25mfX1cInt7L21hcmF0aG9uLnBsdWdpbi1jb25mfX0ge3sjbWFyYXRob24ucGx1Z2luLWRpcn19LS1wbHVnaW5fZGlyIFwie3ttYXJhdGhvbi5wbHVnaW4tZGlyfX1cInt7L21hcmF0aG9uLnBsdWdpbi1kaXJ9fSB7eyNtYXJhdGhvbi5yZWNvbmNpbGlhdGlvbi1pbml0aWFsLWRlbGF5fX0tLXJlY29uY2lsaWF0aW9uX2luaXRpYWxfZGVsYXkgXCJ7e21hcmF0aG9uLnJlY29uY2lsaWF0aW9uLWluaXRpYWwtZGVsYXl9fVwie3svbWFyYXRob24ucmVjb25jaWxpYXRpb24taW5pdGlhbC1kZWxheX19IHt7I21hcmF0aG9uLnJlY29uY2lsaWF0aW9uLWludGVydmFsfX0tLXJlY29uY2lsaWF0aW9uX2ludGVydmFsIFwie3ttYXJhdGhvbi5yZWNvbmNpbGlhdGlvbi1pbnRlcnZhbH19XCJ7ey9tYXJhdGhvbi5yZWNvbmNpbGlhdGlvbi1pbnRlcnZhbH19IHt7I21hcmF0aG9uLnJlcG9ydGVyLWRhdGFkb2d9fS0tcmVwb3J0ZXJfZGF0YWRvZyBcInt7bWFyYXRob24ucmVwb3J0ZXItZGF0YWRvZ319XCJ7ey9tYXJhdGhvbi5yZXBvcnRlci1kYXRhZG9nfX0ge3sjbWFyYXRob24ucmVwb3J0ZXItZ3JhcGhpdGV9fS0tcmVwb3J0ZXJfZ3JhcGhpdGUgXCJ7e21hcmF0aG9uLnJlcG9ydGVyLWdyYXBoaXRlfX1cInt7L21hcmF0aG9uLnJlcG9ydGVyLWdyYXBoaXRlfX0ge3sjbWFyYXRob24ucmV2aXZlLW9mZmVycy1yZXBldGl0aW9uc319LS1yZXZpdmVfb2ZmZXJzX3JlcGV0aXRpb25zIFwie3ttYXJhdGhvbi5yZXZpdmUtb2ZmZXJzLXJlcGV0aXRpb25zfX1cInt7L21hcmF0aG9uLnJldml2ZS1vZmZlcnMtcmVwZXRpdGlvbnN9fSB7eyNtYXJhdGhvbi5zYXZlLXRhc2tzLXRvLWxhdW5jaC10aW1lb3V0fX0tLXNhdmVfdGFza3NfdG9fbGF1bmNoX3RpbWVvdXQgXCJ7e21hcmF0aG9uLnNhdmUtdGFza3MtdG8tbGF1bmNoLXRpbWVvdXR9fVwie3svbWFyYXRob24uc2F2ZS10YXNrcy10by1sYXVuY2gtdGltZW91dH19IHt7I21hcmF0aG9uLnNjYWxlLWFwcHMtaW5pdGlhbC1kZWxheX19LS1zY2FsZV9hcHBzX2luaXRpYWxfZGVsYXkgXCJ7e21hcmF0aG9uLnNjYWxlLWFwcHMtaW5pdGlhbC1kZWxheX19XCJ7ey9tYXJhdGhvbi5zY2FsZS1hcHBzLWluaXRpYWwtZGVsYXl9fSB7eyNtYXJhdGhvbi5zY2FsZS1hcHBzLWludGVydmFsfX0tLXNjYWxlX2FwcHNfaW50ZXJ2YWwgXCJ7e21hcmF0aG9uLnNjYWxlLWFwcHMtaW50ZXJ2YWx9fVwie3svbWFyYXRob24uc2NhbGUtYXBwcy1pbnRlcnZhbH19IHt7I21hcmF0aG9uLnNzbC1rZXlzdG9yZS1wYXNzd29yZH19LS1zc2xfa2V5c3RvcmVfcGFzc3dvcmQgXCJ7e21hcmF0aG9uLnNzbC1rZXlzdG9yZS1wYXNzd29yZH19XCJ7ey9tYXJhdGhvbi5zc2wta2V5c3RvcmUtcGFzc3dvcmR9fSB7eyNtYXJhdGhvbi5zc2wta2V5c3RvcmUtcGF0aH19LS1zc2xfa2V5c3RvcmVfcGF0aCBcInt7bWFyYXRob24uc3NsLWtleXN0b3JlLXBhdGh9fVwie3svbWFyYXRob24uc3NsLWtleXN0b3JlLXBhdGh9fSB7eyNtYXJhdGhvbi5zdG9yZS1jYWNoZX19IC0tc3RvcmVfY2FjaGV7ey9tYXJhdGhvbi5zdG9yZS1jYWNoZX19e3tebWFyYXRob24uc3RvcmUtY2FjaGV9fS0tZGlzYWJsZV9zdG9yZV9jYWNoZXt7L21hcmF0aG9uLnN0b3JlLWNhY2hlfX0ge3sjbWFyYXRob24udGFzay1sYXVuY2gtY29uZmlybS10aW1lb3V0fX0tLXRhc2tfbGF1bmNoX2NvbmZpcm1fdGltZW91dCBcInt7bWFyYXRob24udGFzay1sYXVuY2gtY29uZmlybS10aW1lb3V0fX1cInt7L21hcmF0aG9uLnRhc2stbGF1bmNoLWNvbmZpcm0tdGltZW91dH19IHt7I21hcmF0aG9uLnRhc2stbGF1bmNoLXRpbWVvdXR9fS0tdGFza19sYXVuY2hfdGltZW91dCBcInt7bWFyYXRob24udGFzay1sYXVuY2gtdGltZW91dH19XCJ7ey9tYXJhdGhvbi50YXNrLWxhdW5jaC10aW1lb3V0fX0ge3sjbWFyYXRob24udGFzay1yZXNlcnZhdGlvbi10aW1lb3V0fX0tLXRhc2tfcmVzZXJ2YXRpb25fdGltZW91dCBcInt7bWFyYXRob24udGFzay1yZXNlcnZhdGlvbi10aW1lb3V0fX1cInt7L21hcmF0aG9uLnRhc2stcmVzZXJ2YXRpb24tdGltZW91dH19IHt7I21hcmF0aG9uLnRyYWNpbmd9fSAtLXRyYWNpbmd7ey9tYXJhdGhvbi50cmFjaW5nfX17e15tYXJhdGhvbi50cmFjaW5nfX0tLWRpc2FibGVfdHJhY2luZ3t7L21hcmF0aG9uLnRyYWNpbmd9fSB7eyNtYXJhdGhvbi53ZWJ1aS11cmx9fS0td2VidWlfdXJsIFwie3ttYXJhdGhvbi53ZWJ1aS11cmx9fVwie3svbWFyYXRob24ud2VidWktdXJsfX0gLS16ayB7eyNtYXJhdGhvbi56a319e3ttYXJhdGhvbi56a319e3svbWFyYXRob24uemt9fXt7Xm1hcmF0aG9uLnprfX16azovL21hc3Rlci5tZXNvczoyMTgxL3VuaXZlcnNlL3t7c2VydmljZS5uYW1lfX17ey9tYXJhdGhvbi56a319IHt7I21hcmF0aG9uLnprLWNvbXByZXNzaW9ufX0gLS16a19jb21wcmVzc2lvbnt7L21hcmF0aG9uLnprLWNvbXByZXNzaW9ufX17e15tYXJhdGhvbi56ay1jb21wcmVzc2lvbn19LS1kaXNhYmxlX3prX2NvbXByZXNzaW9ue3svbWFyYXRob24uemstY29tcHJlc3Npb259fSB7eyNtYXJhdGhvbi56ay1jb21wcmVzc2lvbi10aHJlc2hvbGR9fS0temtfY29tcHJlc3Npb25fdGhyZXNob2xkIFwie3ttYXJhdGhvbi56ay1jb21wcmVzc2lvbi10aHJlc2hvbGR9fVwie3svbWFyYXRob24uemstY29tcHJlc3Npb24tdGhyZXNob2xkfX0ge3sjbWFyYXRob24uemstbWF4LXZlcnNpb25zfX0tLXprX21heF92ZXJzaW9ucyBcInt7bWFyYXRob24uemstbWF4LXZlcnNpb25zfX1cInt7L21hcmF0aG9uLnprLW1heC12ZXJzaW9uc319IHt7I21hcmF0aG9uLnprLXNlc3Npb24tdGltZW91dH19LS16a19zZXNzaW9uX3RpbWVvdXQgXCJ7e21hcmF0aG9uLnprLXNlc3Npb24tdGltZW91dH19XCJ7ey9tYXJhdGhvbi56ay1zZXNzaW9uLXRpbWVvdXR9fSB7eyNtYXJhdGhvbi56ay10aW1lb3V0fX0tLXprX3RpbWVvdXQgXCJ7e21hcmF0aG9uLnprLXRpbWVvdXR9fVwie3svbWFyYXRob24uemstdGltZW91dH19IiwKICAibGFiZWxzIjogewogICAgIkRDT1NfUEFDS0FHRV9GUkFNRVdPUktfTkFNRSI6ICJ7eyNtYXJhdGhvbi5mcmFtZXdvcmstbmFtZX19e3ttYXJhdGhvbi5mcmFtZXdvcmstbmFtZX19e3svbWFyYXRob24uZnJhbWV3b3JrLW5hbWV9fXt7Xm1hcmF0aG9uLmZyYW1ld29yay1uYW1lfX17e3NlcnZpY2UubmFtZX19e3svbWFyYXRob24uZnJhbWV3b3JrLW5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX05BTUUiOiAie3tzZXJ2aWNlLm5hbWV9fSIsCiAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwIiwKICAgICJEQ09TX1NFUlZJQ0VfUE9SVF9JTkRFWCI6ICIwIgogIH0KfQo="}, "command": null, "scm": "https://github.com/mesosphere/marathon.git", "minDcosReleaseVersion": "1.6", "preInstallNotes": "We recommend a minimum of one node with at least 2 CPU shares and 1GB of RAM available for the Marathon DCOS Service.", "description": "A container orchestration platform for Mesos and DCOS.", "resource": {"images": {"icon-small": "http://master.mesos:8082/marathon/images/icon-service-marathon-small.png", "icon-medium": "http://master.mesos:8082/marathon/images/icon-service-marathon-medium.png", "icon-large": "http://master.mesos:8082/marathon/images/icon-service-marathon-large.png"}, "assets": {"uris": {}, "container": {"docker": {"image": "master.mesos:5000/mesosphere/marathon:v1.1.1"}}}}, "packagingVersion": "3.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "The Marathon DCOS Service has been uninstalled and will no longer run.\nPlease follow the instructions at http://docs.mesosphere.com/services/marathon/#uninstall to clean up any persisted state", "releaseVersion": 3, "config": {"additionalProperties": false, "description": "Marathon DCOS Service properties", "properties": {"service": {"additionalProperties": false, "description": "Marathon app configuration properties.", "properties": {"name": {"description": "The ID of this Marathon service inside DCOS base Marathon.", "type": "string", "default": "marathon-user", "pattern": "^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$"}, "cpus": {"default": 2, "description": "CPU shares to allocate to each Marathon instance.", "minimum": 0, "type": "number"}, "mem": {"default": 1536, "description": "Memory (MB) to allocate to each Marathon instance.", "minimum": 512, "type": "number"}, "instances": {"default": 1, "description": "Number of Marathon instances to run.", "minimum": 0, "type": "integer"}, "uris": {"default": [], "description": "List of URIs that will be downloaded and made available in the current working directory of Marathon. For example this can be used to download a Java keystore file for SSL configuration.", "items": {"pattern": "^[\\s]+", "type": "string"}, "type": "array"}}, "required": ["cpus", "mem", "instances"], "type": "object"}, "jvm": {"additionalProperties": false, "description": "JVM configuration properties", "properties": {"heap-min": {"default": 256, "description": "Memory (MB) start size for the JVM heap. This number should be be less or equals than the heap-max.", "minimum": 0, "type": "integer"}, "heap-max": {"default": 768, "description": "Memory (MB) max size for the JVM heap. This number should be less than the memory allocated to the Marathon instance (General rule: 50%).", "minimum": 0, "type": "integer"}}, "required": ["heap-min", "heap-max"], "type": "object"}, "marathon": {"additionalProperties": true, "description": "Marathon command line flags. These are the same flags that are passed through to Marathon when launching manually from the command line. See details here: https://mesosphere.github.io/marathon/docs/command-line-flags.html", "properties": {"access-control-allow-origin": {"description": "The origin(s) to allow in Marathon. Not set by default. Example values are \"*\", or \"http://localhost:8888, http://domain.com\"", "type": "string"}, "artifact-store": {"description": "URL to the artifact store. Supported store types hdfs, file. Example: hdfs://localhost:54310/path/to/store, file:///var/log/store", "type": "string"}, "assets-path": {"description": "Set a local file system path to load assets from, instead of loading them from the packaged jar.", "type": "string"}, "checkpoint": {"description": "Enabled: (Default) Enable checkpointing of tasks. Requires checkpointing enabled on slaves. Allows tasks to continue running during mesos-slave restarts and upgrades Disabled: Disable checkpointing of tasks.", "type": "boolean", "default": true}, "decline-offer-duration": {"description": "(Default: 120 seconds) The duration (milliseconds) for which to decline offers by default", "type": "integer", "default": 120000}, "default-accepted-resource-roles": {"description": "Default for the defaultAcceptedResourceRoles attribute of all app definitions as a comma-separated list of strings. This defaults to all roles for which this Marathon instance is configured to receive offers.", "type": "string", "default": "*"}, "disable-http": {"description": "Disable listening for HTTP requests completely. HTTPS is unaffected.", "type": "boolean", "default": false}, "enable-features": {"description": "A comma-separated list of features. Available features are: vips - Enable networking VIPs UI, task_killing - Enable the optional TASK_KILLING state, available in Mesos 0.28 and later, external_volumes - Enable external volumes support in Marathon", "type": "string", "default": "vips,task_killing"}, "env-vars-prefix": {"description": "Prefix to use for environment variables injected automatically into all started tasks.", "type": "string"}, "event-stream-max-outstanding-messages": {"description": "The event stream buffers events, that are not already consumed by clients. This number defines the number of events that get buffered on the server side, before messages are dropped.", "type": "integer", "default": 50}, "event-subscriber": {"description": "The event subscription module to use. E.g. http_callback.", "type": "string"}, "executor": {"description": "Executor to use when none is specified. If not defined the Mesos command executor is used by default.", "type": "string", "default": "//cmd"}, "failover-timeout": {"description": "(Default: 1 week) The failover_timeout for mesos in seconds.", "type": "integer", "default": 604800}, "framework-name": {"description": "(Default: service.name) Framework name to register with Mesos.", "type": "string"}, "ha": {"description": "Enabled: (Default) Run Marathon in HA mode with leader election. Allows starting an arbitrary number of other Marathons but all need to be started in HA mode. This mode requires a running ZooKeeper Disabled: Run Marathon in single node mode.", "type": "boolean", "default": true}, "hostname": {"description": "The advertised hostname that is used for the communication with the Mesos master. The value is also stored in the persistent store so another standby host can redirect to the elected leader.", "type": "string"}, "http-address": {"description": "The address to listen on for HTTP requests", "type": "string"}, "http-credentials": {"description": "Credentials for accessing the http service. If empty, anyone can access the HTTP endpoint. A username:password pair is expected where the username must not contain ':'. May also be specified with the `MESOSPHERE_HTTP_CREDENTIALS` environment variable. ", "type": "string"}, "http-endpoints": {"description": "The URLs of the event endpoints added to the current list of subscribers on startup. You can manage this list during runtime by using the /v2/eventSubscriptions API endpoint.", "type": "string"}, "http-event-callback-slow-consumer-timeout": {"description": "A http event callback consumer is considered slow, if the delivery takes longer than this timeout (ms)", "type": "integer", "default": 10000}, "http-max-concurrent-requests": {"description": "The number of concurrent HTTP requests that are allowed before rejecting.", "type": "integer"}, "http-port": {"description": "The port to listen on for HTTP requests", "type": "integer"}, "http-realm": {"description": "The security realm (aka 'area') associated with the credentials", "type": "string", "default": "Mesosphere"}, "https-address": {"description": "The address to listen on for HTTPS requests.", "type": "string"}, "https-port": {"description": "The port to listen on for HTTPS requests", "type": "integer"}, "launch-token-refresh-interval": {"description": "The interval (ms) in which to refresh the launch tokens to --launch_token_count", "type": "integer", "default": 30000}, "launch-tokens": {"description": "Launch tokens per interval", "type": "integer", "default": 100}, "leader-proxy-connection-timeout": {"description": "Maximum time, in milliseconds, to wait for connecting to the current Marathon leader from another Marathon instance.", "type": "integer", "default": 5000}, "leader-proxy-read-timeout": {"description": "Maximum time, in milliseconds, for reading from the current Marathon leader.", "type": "integer", "default": 10000}, "local-port-max": {"description": "Max port number to use when assigning globally unique service ports to apps.", "type": "integer", "default": 20000}, "local-port-min": {"description": "Min port number to use when assigning globally unique service ports to apps.", "type": "integer", "default": 10000}, "logging-level": {"description": "Set logging level to one of: off, error, warn, info, debug, trace, all", "type": "string"}, "marathon-store-timeout": {"description": "(deprecated) Maximum time, in milliseconds, to wait for persistent storage operations to complete. This option is no longer used and will be removed in a later release.", "type": "integer"}, "master": {"description": "The URL of the Mesos master", "type": "string", "default": "zk://master.mesos:2181/mesos"}, "max-apps": {"description": "The maximum number of applications that may be created.", "type": "integer"}, "max-tasks-per-offer": {"description": "Maximum tasks per offer. Do not start more than this number of tasks on a single offer.", "type": "integer", "default": 1}, "mesos-authentication-principal": {"description": "(Default: service.name) Mesos Authentication Principal.", "type": "string"}, "mesos-authentication-secret-file": {"description": "Mesos Authentication Secret.", "type": "string"}, "mesos-leader-ui-url": {"description": "The host and port (e.g. \"http://mesos_host:5050\") of the Mesos master.", "type": "string", "default": "/mesos"}, "mesos-role": {"description": "(Default: service.name) Mesos role for this framework. If set, Marathon receives resource offers for the specified role in addition to resources with the role designation '*'.", "type": "string"}, "mesos-user": {"description": "Mesos user for this framework.", "type": "string"}, "metrics": {"description": "Enabled: (Default) Expose the execution time of service method calls using code instrumentation via the metrics endpoint (/metrics). This might noticeably degrade performance but can help finding performance problems. Disabled: Disable exposing execution time of service method calls using code instrumentation via the metrics endpoing (/metrics). This does not turn off reporting of other metrics.", "type": "boolean", "default": true}, "min-revive-offers-interval": {"description": "Do not ask for all offers (also already seen ones) more often than this interval (ms).", "type": "integer", "default": 5000}, "offer-matching-timeout": {"description": "Offer matching timeout (ms). Stop trying to match additional tasks for this offer after this time.", "type": "integer", "default": 1000}, "on-elected-prepare-timeout": {"description": "The timeout for preparing the Marathon instance when elected as leader.", "type": "integer", "default": 180000}, "plugin-conf": {"description": "The plugin configuration file.", "type": "string"}, "plugin-dir": {"description": "Path to a local directory containing plugin jars.", "type": "string"}, "reconciliation-initial-delay": {"description": "This is the length of time, in milliseconds, before Marathon begins to periodically perform task reconciliation operations", "type": "integer", "default": 15000}, "reconciliation-interval": {"description": "This is the length of time, in milliseconds, between task reconciliation operations.", "type": "integer", "default": 600000}, "reporter-datadog": {"description": "URL to dogstatsd agent. e.g. udp://localhost:8125?prefix=marathon-test&tags=marathon&interval=10", "type": "string"}, "reporter-graphite": {"description": "URL to graphite agent. e.g. tcp://localhost:2003?prefix=marathon-test&interval=10", "type": "string"}, "revive-offers-repetitions": {"description": "Repeat every reviveOffer request this many times, delayed by the --min_revive_offers_interval.", "type": "integer", "default": 3}, "save-tasks-to-launch-timeout": {"description": "Timeout (ms) after matching an offer for saving all matched tasks that we are about to launch. When reaching the timeout, only the tasks that we could save within the timeout are also launched. All other task launches are temporarily rejected and retried later.", "type": "integer", "default": 3000}, "scale-apps-initial-delay": {"description": "This is the length of time, in milliseconds, before Marathon begins to periodically attempt to scale apps.", "type": "integer", "default": 15000}, "scale-apps-interval": {"description": "This is the length of time, in milliseconds, between task scale apps.", "type": "integer", "default": 300000}, "ssl-keystore-password": {"description": "Password for the keystore supplied with the `ssl_keystore_path` option. Required if `ssl_keystore_path` is supplied. May also be specified with the `MESOSPHERE_KEYSTORE_PASS` environment variable.", "type": "string"}, "ssl-keystore-path": {"description": "Path to the SSL keystore. HTTPS (SSL) will be enabled if this option is supplied. Requires `--ssl_keystore_password`. May also be specified with the `MESOSPHERE_KEYSTORE_PATH` environment variable.", "type": "string"}, "store-cache": {"description": "Enabled: (Default) Enable an in-memory cache for the storage layer. Disabled: Disable the in-memory cache for the storage layer. ", "type": "boolean", "default": true}, "task-launch-confirm-timeout": {"description": "Time, in milliseconds, to wait for a task to enter the TASK_STAGING state before killing it.", "type": "integer", "default": 300000}, "task-launch-timeout": {"description": "Time, in milliseconds, to wait for a task to enter the TASK_RUNNING state before killing it.", "type": "integer", "default": 300000}, "task-reservation-timeout": {"description": "Time, in milliseconds, to wait for a new reservation to be acknowledged via a received offer before deleting it.", "type": "integer", "default": 20000}, "tracing": {"description": "Enabled: Enable trace logging of service method calls. Disabled: (Default) Disable trace logging of service method calls.", "type": "boolean", "default": false}, "webui-url": {"description": "The HTTP(S) url of the web ui, defaulting to the advertised hostname.", "type": "string"}, "zk": {"description": "ZooKeeper URL for storing state. Format: zk://host1:port1,host2:port2,.../path", "type": "string"}, "zk-compression": {"description": "Enabled: (Default) Enable compression of zk nodes, if the size of the node is bigger than the configured threshold. Disabled: Disable compression of zk nodes", "type": "boolean", "default": true}, "zk-compression-threshold": {"description": "(Default: 64 KB) Threshold in bytes, when compression is applied to the ZooKeeper node.", "type": "integer", "default": 65536}, "zk-max-versions": {"description": "Limit the number of versions, stored for one entity.", "type": "integer", "default": 25}, "zk-session-timeout": {"description": "The timeout for ZooKeeper sessions in milliseconds", "type": "integer", "default": 10000}, "zk-timeout": {"description": "The timeout for ZooKeeper in milliseconds.", "type": "integer", "default": 10000}}, "required": ["master"], "type": "object"}}, "required": ["service", "jvm", "marathon"], "type": "object"}, "version": "1.1.1", "postInstallNotes": "Marathon DCOS Service has been successfully installed!\n\n\tDocumentation: https://mesosphere.github.io/marathon\n\tIssues: https://github.com/mesosphere/marathon/issues\n", "framework": true, "licenses": [{"url": "https://github.com/mesosphere/marathon/blob/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "marathon"}, {"tags": ["proxy", "web-server", "cache", "reverse-proxy"], "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICIve3tuZ2lueC5uYW1lfX0iLAogICJpbnN0YW5jZXMiOiB7e25naW54Lmluc3RhbmNlc319LAogICJjcHVzIjoge3tuZ2lueC5jcHVzfX0sCiAgIm1lbSI6IHt7bmdpbngubWVtfX0sCiAgIm1haW50YWluZXIiOiAiY29udGFpbmVyc0BiaXRuYW1pLmNvbSIsCnt7I25naW54LmNvbnRlbnREaXJ9fQogICJjbWQiOiAiY2QgL29wdC9iaXRuYW1pL25naW54ICYmIGhhcnBvb24gaW5pdGlhbGl6ZSBuZ2lueCAmJiBybSAtcmYgL29wdC9iaXRuYW1pL25naW54L2h0bWwgJiYgbG4gLXMgL21udC9tZXNvcy9zYW5kYm94L3t7bmdpbnguY29udGVudERpcn19IC9vcHQvYml0bmFtaS9uZ2lueC9odG1sICYmIGhhcnBvb24gc3RhcnQgLS1mb3JlZ3JvdW5kIG5naW54IiwKe3svbmdpbnguY29udGVudERpcn19Cnt7I25naW54LmNvbmZpZ1VybH19CiAgImNtZCI6ICJjZCAvb3B0L2JpdG5hbWkvbmdpbnggJiYgaGFycG9vbiBpbml0aWFsaXplIG5naW54ICYmIGNwIC9tbnQvbWVzb3Mvc2FuZGJveC9uZ2lueC8qLmNvbmYgL2JpdG5hbWkvbmdpbngvY29uZi92aG9zdHMvICYmIGhhcnBvb24gc3RhcnQgLS1mb3JlZ3JvdW5kIG5naW54IiwKe3svbmdpbnguY29uZmlnVXJsfX0KICAiY29udGFpbmVyIjogewogICAgInR5cGUiOiAiRE9DS0VSIiwKICAgICJkb2NrZXIiOiB7CiAgICAgICJpbWFnZSI6ICJ7e3Jlc291cmNlLmFzc2V0cy5jb250YWluZXIuZG9ja2VyLm5naW54LWRvY2tlcn19IiwKICAgIHt7I25naW54LmJyaWRnZX19CiAgICAgICJuZXR3b3JrIjogIkJSSURHRSIsCiAgICAgICJwb3J0TWFwcGluZ3MiOiBbCiAgICAgICAgeyAiY29udGFpbmVyUG9ydCI6IDgwLCAiaG9zdFBvcnQiOiAwIH0sCiAgICAgICAgeyAiY29udGFpbmVyUG9ydCI6IDQ0MywgImhvc3RQb3J0IjogMCB9CiAgICAgIF0KICAgIHt7L25naW54LmJyaWRnZX19CiAgICB7e15uZ2lueC5icmlkZ2V9fQogICAgICAibmV0d29yayI6ICJIT1NUIgogICAge3svbmdpbnguYnJpZGdlfX0KICAgIH0KICB9LAogICJoZWFsdGhDaGVja3MiOiBbCiAgICB7CiAgICAgICJwcm90b2NvbCI6ICJDT01NQU5EIiwKICAgICAgImNvbW1hbmQiOiB7ICJ2YWx1ZSI6ICJoYXJwb29uIHN0YXR1cyBuZ2lueCB8IGdyZXAgLXEgJ2NvbS5iaXRuYW1pLm5naW54IGlzIHJ1bm5pbmcnIn0sCiAgICAgICJncmFjZVBlcmlvZFNlY29uZHMiOiAzMDAsCiAgICAgICJpbnRlcnZhbFNlY29uZHMiOiA2MCwKICAgICAgInRpbWVvdXRTZWNvbmRzIjogMjAsCiAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMwogICAgfQogIF0sCnt7I25naW54LmNvbnRlbnRVcmx9fQogICJ1cmlzIjpbCiAgICAie3tuZ2lueC5jb250ZW50VXJsfX0iCiAgXSwKe3svbmdpbnguY29udGVudFVybH19Cnt7I25naW54LmNvbmZpZ1VybH19CiAgInVyaXMiOlsKICAgICJ7e25naW54LmNvbmZpZ1VybH19IgogIF0sCnt7L25naW54LmNvbmZpZ1VybH19CiAgImFjY2VwdGVkUmVzb3VyY2VSb2xlcyI6IFsKICAgICJ7e25naW54LnJvbGV9fSIKICBdLAogICJsYWJlbHMiOiB7CiAgICB7eyNuZ2lueC52aXJ0dWFsLWhvc3R9fQogICAgIkhBUFJPWFlfR1JPVVAiOiJleHRlcm5hbCIsCiAgICAiSEFQUk9YWV8wX1ZIT1NUIjoie3tuZ2lueC52aXJ0dWFsLWhvc3R9fSIsCiAgICAiSEFQUk9YWV8wX1JFRElSRUNUX1RPX0hUVFBTIjogInt7bmdpbnguaHR0cHMtcmVkaXJlY3R9fSIsCiAgICB7ey9uZ2lueC52aXJ0dWFsLWhvc3R9fQogICAgIkRDT1NfU0VSVklDRV9OQU1FIjogInt7bmdpbngubmFtZX19IiwKICAgICJEQ09TX1NFUlZJQ0VfU0NIRU1FIjogImh0dHAiLAogICAgIkRDT1NfU0VSVklDRV9QT1JUX0lOREVYIjogIjAiCiAgfQp9Cg=="}, "command": null, "scm": "http://hg.nginx.org/nginx/", "preInstallNotes": "Preparing to install nginx.", "description": "nginx is a high performance HTTP and reverse proxy server.", "resource": {"images": {"icon-small": "http://master.mesos:8082/nginx/images/tYoVju31.png", "icon-medium": "http://master.mesos:8082/nginx/images/tYoVju31.png", "icon-large": "http://master.mesos:8082/nginx/images/tYoVju31.png"}, "assets": {"uris": {}, "container": {"docker": {"nginx-docker": "master.mesos:5000/bitnami/nginx:1.10.1-r1"}}}}, "packagingVersion": "2.0", "maintainer": "containers@bitnami.com", "postUninstallNotes": "Nginx was uninstalled successfully.", "releaseVersion": 4, "config": {"$schema": "http://json-schema.org/schema#", "properties": {"nginx": {"properties": {"instances": {"default": 1, "description": "Number of instances to run.", "minimum": 1, "type": "integer"}, "cpus": {"default": 1, "description": "CPU shares to allocate to each nginx instance.", "minimum": 1, "type": "number"}, "mem": {"default": 1024.0, "description": "Memory (MB) to allocate to each nginx task.", "minimum": 256.0, "type": "number"}, "minimumHealthCapacity": {"default": 0.5, "description": "Minimum health capacity.", "minimum": 0, "type": "number"}, "maximumOverCapacity": {"default": 0.2, "description": "Maximum over capacity.", "minimum": 0, "type": "number"}, "name": {"default": "nginx", "description": "Name for this nginx application", "type": "string"}, "role": {"default": "*", "description": "Deploy nginx only on nodes with this role.", "type": "string"}, "contentDir": {"description": "Path of directory, relative to sandbox, containing HTML code. Can NOT be combined with configUrl.", "type": "string"}, "contentUrl": {"description": "URL of content that needs to be hosted. Can NOT be combined with configUrl.", "type": "string"}, "configUrl": {"description": "URL to Nginx vhost configurations (e.g., load balancing, reverse proxy, etc). Can NOT be combined with contentUrl or contentDir.", "type": "string"}, "bridge": {"default": true, "description": "Whether to use BRIDGE networking mode for Docker container. By default, this is true and BRIDGE mode networking is used.", "type": "boolean"}, "virtual-host": {"description": "The virtual host address to configure for integration with Marathon-lb.", "type": "string"}, "https-redirect": {"description": "Whether Marathon-lb should redirect HTTP traffic to HTTPS. This requires 'virtual-host' to be set. By default, this is false.", "type": "boolean", "default": false}}, "required": ["cpus", "mem", "instances", "name"], "type": "object"}}, "type": "object"}, "version": "1.10.1", "postInstallNotes": "Nginx has been installed.", "framework": false, "licenses": [{"url": "http://nginx.org/LICENSE", "name": "BSD like"}], "name": "nginx"}, {"tags": ["spark", "notebook", "spark-notebook", "interactive", "big-data", "apachespark", "data-fellas"], "selected": false, "marathon": {"v2AppMustacheTemplate": "ewogICJpZCI6ICIvc3Bhcmstbm90ZWJvb2siLAogICJjcHVzIjogMiwKICAibWVtIjogNTAwMCwKICAiaW5zdGFuY2VzIjogMSwKICAiY21kIjogIkpBVkFfSE9NRT0kTUVTT1NfU0FOREJPWC9qcmUxLjcuMF83NiAmJiBQQVRIPSRQQVRIOiRKQVZBX0hPTUUvYmluICYmIGNkICRTUEFSS19OT1RFQk9PS19ESVIgJiYgLi9iaW4vc3Bhcmstbm90ZWJvb2sgLXYgLURtYW5hZ2VyLnRhY2h5b24uZW5hYmxlZD1mYWxzZSAtRGh0dHAucG9ydD0kUE9SVDAgLUotWG1zNDAwMG0gLUotWG14NDAwMG0gLURtYW5hZ2VyLm5vdGVib29rcy5jdXN0b20uc3BhcmtDb25mLnNwYXJrLm1lc29zLmV4ZWN1dG9yLmRvY2tlci5pbWFnZT1cIm1lc29zcGhlcmUvc3Bhcms6MS42LjBcIiAtRG1hbmFnZXIubm90ZWJvb2tzLmN1c3RvbS5zcGFya0NvbmYuc3BhcmsubWFzdGVyPVwibWVzb3M6Ly96azovL21hc3Rlci5tZXNvczoyMTgxL21lc29zXCIgIC1EbWFuYWdlci5ub3RlYm9va3Mub3ZlcnJpZGUuc3BhcmtDb25mLnNwYXJrLm1lc29zLmNvYXJzZT1cInRydWVcIiAtRG1hbmFnZXIubm90ZWJvb2tzLmN1c3RvbS5zcGFya0NvbmYuc3BhcmsubWVzb3MuZXhlY3V0b3IuaG9tZT1cIi9vcHQvc3BhcmsvZGlzdFwiIiwKICAidXJpcyI6IFsKICAgICJ7e3Jlc291cmNlLmFzc2V0cy51cmlzLnNwYXJrLW5vdGVib29rLTAtNy0wLVNOQVBTSE9ULXNjYWxhLTItMTAtNS1zcGFyay0xLTYtMC1oYWRvb3AtMi01LTAtY2RoNS0zLTMtd2l0aC1oaXZlLXdpdGgtcGFycXVldC10Z3p9fSIsCiAgICAie3tyZXNvdXJjZS5hc3NldHMudXJpcy5qcmUtN3U3Ni1saW51eC14NjQtdGFyLWd6fX0iCiAgXSwKICAiZW52IjogewogICAiTUVTT1NfSkFWQV9OQVRJVkVfTElCUkFSWSI6ICIvb3B0L21lc29zcGhlcmUvbGliL2xpYm1lc29zLnNvIiwKICAgIlNQQVJLX05PVEVCT09LX0RJUiI6ICJzcGFyay1ub3RlYm9vay0wLjcuMC1TTkFQU0hPVC1zY2FsYS0yLjEwLjUtc3BhcmstMS42LjAtaGFkb29wLTIuNS4wLWNkaDUuMy4zLXdpdGgtaGl2ZS13aXRoLXBhcnF1ZXQiCiAgfSwKICAiYWNjZXB0ZWRSZXNvdXJjZVJvbGVzIjogWyJzbGF2ZV9wdWJsaWMiXSwKICAiaGVhbHRoQ2hlY2tzIjogWwogICAgewogICAgICAicHJvdG9jb2wiOiAiSFRUUCIsCiAgICAgICJwb3J0SW5kZXgiOiAwLAogICAgICAicGF0aCI6ICIvdHJlZSIsCiAgICAgICJncmFjZVBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgImludGVydmFsU2Vjb25kcyI6IDIwLAogICAgICAidGltZW91dFNlY29uZHMiOiAyMCwKICAgICAgIm1heENvbnNlY3V0aXZlRmFpbHVyZXMiOiAzCiAgICB9CiAgXSwKICAicG9ydHMiOiBbIDAgXQp9Cgo="}, "command": null, "scm": "https://github.com/andypetrella/spark-notebook/", "preInstallNotes": "", "description": "Spark Notebook package for DCOS", "resource": {"images": {"icon-small": "http://master.mesos:8082/spark-notebook/images/icon-service-spark-small.png", "icon-medium": "http://master.mesos:8082/spark-notebook/images/icon-service-spark-medium.png", "icon-large": "http://master.mesos:8082/spark-notebook/images/icon-service-spark-large.png"}, "assets": {"uris": {"jre-7u76-linux-x64-tar-gz": "http://master.mesos:8082/spark-notebook/uris/jre-7u76-linux-x64.tar.gz", "spark-notebook-0-7-0-SNAPSHOT-scala-2-10-5-spark-1-6-0-hadoop-2-5-0-cdh5-3-3-with-hive-with-parquet-tgz": "http://master.mesos:8082/spark-notebook/uris/spark-notebook-0.7.0-SNAPSHOT-scala-2.10.5-spark-1.6.0-hadoop-2.5.0-cdh5.3.3-with-hive-with-parquet.tgz"}}}, "website": "http://spark-notebook.io", "packagingVersion": "2.0", "maintainer": "noootsab@data-fellas.guru", "releaseVersion": 0, "config": {"type": "object", "properties": {"spark-notebook": {"description": "Spark Notebook configuration properties", "type": "object", "properties": {}}}}, "version": "0.1.0", "postInstallNotes": "Yeah Spark Notebook is in da place!", "framework": true, "licenses": [{"url": "https://raw.githubusercontent.com/apache/spark/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "spark-notebook"}, {"tags": ["bigdata", "mapreduce", "batch", "analytics"], "selected": true, "marathon": {"v2AppMustacheTemplate": "ewogICAgImlkIjogInt7c2VydmljZS5uYW1lfX0iLAogICAgImNwdXMiOiB7e3NlcnZpY2UuY3B1c319LAogICAgIm1lbSI6IHt7c2VydmljZS5tZW19fSwKICAgICJjbWQiOiAiL3NiaW4vaW5pdC5zaCIsCiAgICAiZW52IjogewogICAgICAgICJEQ09TX1NFUlZJQ0VfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICAgICAiU1BBUktfSERGU19DT05GSUdfVVJMIjogInt7aGRmcy5jb25maWctdXJsfX0iLAogICAgICAgICJTUEFSS19VU0VSIjogInt7c2VydmljZS51c2VyfX0iLAogICAgICAgICJTUEFSS19ESVNQQVRDSEVSX01FU09TX1JPTEUiOiAie3tzZXJ2aWNlLnJvbGV9fSIsCiAgICAgICAgIlNQQVJLX0RJU1BBVENIRVJfTUVTT1NfUFJJTkNJUEFMIjogInt7c2VydmljZS5wcmluY2lwYWx9fSIsCiAgICAgICAgIlNQQVJLX0RJU1BBVENIRVJfTUVTT1NfU0VDUkVUIjogInt7c2VydmljZS5zZWNyZXR9fSIsCnt7I3NlY3VyaXR5LmtlcmJlcm9zLmtyYjVjb25mfX0KICAgICAgICAiU1BBUktfTUVTT1NfS1JCNV9DT05GX0JBU0U2NCI6ICJ7e3NlY3VyaXR5LmtlcmJlcm9zLmtyYjVjb25mfX0iLAp7ey9zZWN1cml0eS5rZXJiZXJvcy5rcmI1Y29uZn19Cnt7I3NlY3VyaXR5LnNzbC5lbmFibGVkfX0KICAgICAgICAiU1BBUktfU1NMX0VOQUJMRUQiOiAie3tzZWN1cml0eS5zc2wuZW5hYmxlZH19IiwKICAgICAgICAiU1BBUktfU1NMX0tFWVNUT1JFQkFTRTY0IjogInt7c2VjdXJpdHkuc3NsLmtleVN0b3JlQmFzZTY0fX0iLAogICAgICAgICJTUEFSS19TU0xfVFJVU1RTVE9SRUJBU0U2NCI6ICJ7e3NlY3VyaXR5LnNzbC50cnVzdFN0b3JlQmFzZTY0fX0iLAogICAgICAgICJTUEFSS19TU0xfS0VZU1RPUkVQQVNTV09SRCI6ICJ7e3NlY3VyaXR5LnNzbC5rZXlTdG9yZVBhc3N3b3JkfX0iLAogICAgICAgICJTUEFSS19TU0xfS0VZUEFTU1dPUkQiOiAie3tzZWN1cml0eS5zc2wua2V5UGFzc3dvcmR9fSIsCiAgICAgICAgIlNQQVJLX1NTTF9UUlVTVFNUT1JFUEFTU1dPUkQiOiAie3tzZWN1cml0eS5zc2wua2V5U3RvcmVQYXNzd29yZH19IiwKICAgICAgICAiU1BBUktfU1NMX1BST1RPQ09MIjogInt7c2VjdXJpdHkuc3NsLnByb3RvY29sfX0iLAogICAgICAgICJTUEFSS19TU0xfRU5BQkxFREFMR09SSVRITVMiOiAie3tzZWN1cml0eS5zc2wuZW5hYmxlZEFsZ29yaXRobXN9fSIsCnt7L3NlY3VyaXR5LnNzbC5lbmFibGVkfX0KICAgICAgICAiRU5BQkxFX0hJU1RPUllfU0VSVkVSIjogInt7aGlzdG9yeS1zZXJ2ZXIuZW5hYmxlZH19IiwKICAgICAgICAiSElTVE9SWV9MT0dfRElSIjogInt7aGlzdG9yeS1zZXJ2ZXIubG9nLWRpcn19IiwKICAgICAgICAiSElTVE9SWV9DTEVBTkVSX0VOQUJMRUQiOiAie3toaXN0b3J5LXNlcnZlci5jbGVhbmVyLWVuYWJsZWR9fSIsCiAgICAgICAgIkhJU1RPUllfQ0xFQU5FUl9JTlRFUlZBTCI6ICJ7e2hpc3Rvcnktc2VydmVyLmNsZWFuZXItaW50ZXJ2YWx9fSIsCiAgICAgICAgIkhJU1RPUllfQ0xFQU5FUl9NQVhBR0UiOiAie3toaXN0b3J5LXNlcnZlci5jbGVhbmVyLW1heGFnZX19IiwKICAgICAgICAiSElTVE9SWV9LUkJfUFJJTkNJUEFMIjogInt7aGlzdG9yeS1zZXJ2ZXIua2VyYmVyb3MucHJpbmNpcGFsfX0iLAogICAgICAgICJISVNUT1JZX0tSQl9LRVlUQUIiOiAie3toaXN0b3J5LXNlcnZlci5rZXJiZXJvcy5rZXl0YWJ9fSIsCiAgICAgICAgIlNQQVJLX0xPR19MRVZFTCI6ICJ7e3NlcnZpY2UubG9nLWxldmVsfX0iCiAgICB9LAogICAgInBvcnRzIjogWwogICAgICAgIDAsCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgIDAKICAgIF0sCiAgICAiY29udGFpbmVyIjogewogICAgICAgICJ0eXBlIjogIkRPQ0tFUiIsCiAgICAgICAgImRvY2tlciI6IHsKICAgICAgICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuc3BhcmtfZG9ja2VyfX0iLAogICAgICAgICAgICAibmV0d29yayI6ICJIT1NUIiwKICAgICAgICAgICAgImZvcmNlUHVsbEltYWdlIjogdHJ1ZQogICAgICAgIH0KICAgIH0sCiAgICAiaGVhbHRoQ2hlY2tzIjogWwogICAgICAgIHsKe3sjc2VjdXJpdHkuc3NsLmVuYWJsZWR9fQogICAgICAgICAgICAicHJvdG9jb2wiOiAiQ09NTUFORCIsCiAgICAgICAgICAgICJjb21tYW5kIjogeyAidmFsdWUiOiAiY3VybCAtZiAtayBodHRwczovLyRIT1NUOiRQT1JUMy8iIH0sCnt7L3NlY3VyaXR5LnNzbC5lbmFibGVkfX0Ke3tec2VjdXJpdHkuc3NsLmVuYWJsZWR9fQogICAgICAgICAgICAicGF0aCI6ICIvIiwKICAgICAgICAgICAgInBvcnRJbmRleCI6IDMsCiAgICAgICAgICAgICJwcm90b2NvbCI6ICJIVFRQIiwKe3svc2VjdXJpdHkuc3NsLmVuYWJsZWR9fQogICAgICAgICAgICAiZ3JhY2VQZXJpb2RTZWNvbmRzIjogNSwKICAgICAgICAgICAgImludGVydmFsU2Vjb25kcyI6IDYwLAogICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgIm1heENvbnNlY3V0aXZlRmFpbHVyZXMiOiAzCiAgICAgICAgfQogICAgXSwKICAgICJsYWJlbHMiOiB7Cnt7I2hkZnMuY29uZmlnLXVybH19CiAgICAgICAgIlNQQVJLX0hERlNfQ09ORklHX1VSTCI6ICJ7e2hkZnMuY29uZmlnLXVybH19IiwKe3svaGRmcy5jb25maWctdXJsfX0KICAgICAgICAiU1BBUktfVVJJIjogInt7c2VydmljZS5zcGFyay1kaXN0LXVyaX19IiwKICAgICAgICAiRENPU19QQUNLQUdFX0ZSQU1FV09SS19OQU1FIjogInt7c2VydmljZS5uYW1lfX0iLAogICAgICAgICJEQ09TX1NFUlZJQ0VfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICAgICAiRENPU19TRVJWSUNFX1BPUlRfSU5ERVgiOiAiMyIsCnt7I3NlY3VyaXR5LnNzbC5lbmFibGVkfX0KICAgICAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwcyIKe3svc2VjdXJpdHkuc3NsLmVuYWJsZWR9fQp7e15zZWN1cml0eS5zc2wuZW5hYmxlZH19CiAgICAgICAgIkRDT1NfU0VSVklDRV9TQ0hFTUUiOiAiaHR0cCIKe3svc2VjdXJpdHkuc3NsLmVuYWJsZWR9fQogICAgfSwKICAgICJ1cmlzIjogWwogICAge3sjaGRmcy5jb25maWctdXJsfX0KICAgICJ7e2hkZnMuY29uZmlnLXVybH19L2hkZnMtc2l0ZS54bWwiLAogICAgInt7aGRmcy5jb25maWctdXJsfX0vY29yZS1zaXRlLnhtbCIKICAgIHt7L2hkZnMuY29uZmlnLXVybH19CiAgICBdCn0K"}, "command": {"pip": ["http://master.mesos:8082/spark/commands/dcos_spark-0.5.19-py2.py3-none-any.whl"]}, "scm": "https://github.com/apache/spark.git", "minDcosReleaseVersion": "1.7", "resource": {"images": {"icon-small": "http://master.mesos:8082/spark/images/icon-service-spark-small.png", "icon-medium": "http://master.mesos:8082/spark/images/icon-service-spark-medium.png", "icon-large": "http://master.mesos:8082/spark/images/icon-service-spark-large.png"}, "assets": {"uris": {}, "container": {"docker": {"spark_docker": "master.mesos:5000/mesosphere/spark:1.0.2-2.0.0"}}}}, "website": "https://docs.mesosphere.com/current/usage/service-guides/spark/", "packagingVersion": "3.0", "maintainer": "support@mesosphere.io", "postUninstallNotes": "The Apache Spark DC/OS Service has been uninstalled and will no longer run.\nPlease follow the instructions at https://docs.mesosphere.com/current/usage/service-guides/spark/uninstall/ to clean up any persisted state.", "releaseVersion": 17, "config": {"type": "object", "properties": {"service": {"description": "DCOS Spark configuration properties", "type": "object", "properties": {"name": {"default": "spark", "description": "The Spark Dispatcher will register with Mesos with this as a framework name. This service will be available at http://<dcos_url>/service/<name>/", "type": "string"}, "cpus": {"default": 1, "description": "CPU shares", "minimum": 0.0, "type": "number"}, "mem": {"default": 1024.0, "description": "Memory (MB)", "minimum": 1024.0, "type": "number"}, "role": {"description": "The Spark Dispatcher will register with Mesos with this role.", "type": "string", "default": "*"}, "principal": {"description": "The Spark Dispatcher will register with Mesos with this principal.", "type": "string", "default": ""}, "secret": {"description": "The Spark Dispatcher will register with mesos with this secret.", "type": "string", "default": ""}, "user": {"description": "Executors will run as this user.", "type": "string", "default": "root"}, "spark-dist-uri": {"type": "string", "description": "Spark distribution URI. The DCOS Spark CLI will fetch this Spark distribution. This variable has no effect on the Spark distribution running the dispatcher or the drivers. The Docker image running this Marathon app contains that distribution.", "default": "https://downloads.mesosphere.com/spark/assets/spark-2.0.0.tgz"}, "log-level": {"type": "string", "description": "log4j log level for The Spark Dispatcher. May be set to any valid log4j log level: https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html", "default": "INFO"}}}, "history-server": {"description": "History Server configuration properties", "type": "object", "properties": {"enabled": {"description": "Set to true to enable the Spark history server.", "type": "boolean", "default": false}, "log-dir": {"description": "Base directory in which Spark events are logged if spark.history-server.enabled is set to true. Users may want to set this to a unified location like an HDFS directory so history files can be read by the history server. Note that this directory must exist prior to installing the Spark package.", "type": "string", "default": "hdfs://hdfs/history"}, "cleaner-enabled": {"description": "Specifies whether the History Server should periodically clean up event logs from storage.", "type": "boolean", "default": false}, "cleaner-interval": {"default": "1d", "description": "How often the job history cleaner checks for files to delete. Files are only deleted if they are older than spark.history-server.cleaner-maxage.", "type": "string"}, "cleaner-maxage": {"default": "7d", "description": "Job history files older than this will be deleted when the history cleaner runs.", "type": "string"}, "kerberos": {"type": "object", "description": "History Server Kerberos configuration properties.", "properties": {"principal": {"description": "Kerberos principal used by the history server.", "default": "", "type": "string"}, "keytab": {"description": "Base64 encoded keytab for the history server. This contains secrets. Ensure you have SSL enabled before transmitting this data.", "default": "", "type": "string"}}}}}, "security": {"description": "Spark security configuration properties", "type": "object", "properties": {"kerberos": {"description": "Spark Kerberos configuration.", "type": "object", "properties": {"krb5conf": {"description": "Base64 encoded krb5.conf file. Copied to the drivers and executors so that they may access your KDC. Also used by the history server.", "type": "string", "default": ""}}}, "ssl": {"description": "Spark SSL certificates and private key configuration.", "type": "object", "properties": {"enabled": {"default": false, "description": "Set to true to enable SSL.", "type": "boolean"}, "keyStoreBase64": {"default": "", "description": "Base64 encoded blob containing a Java keystore.", "type": "string"}, "trustStoreBase64": {"default": "", "description": "Base64 encoded blob containing a Java truststore.", "type": "string"}, "keyPassword": {"default": "", "description": "An optional password for the private key in the keystore.", "type": "string"}, "keyStorePassword": {"default": "", "description": "An optional password for the keystore (and the key if keyPassword is not given).", "type": "string"}, "trustStorePassword": {"default": "", "description": "An optional password for the truststore.", "type": "string"}, "protocol": {"default": "TLSv1.2", "description": "The TLS version to offer.", "type": "string"}, "enabledAlgorithms": {"default": "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,SSL_DH_anon_WITH_DES_CBC_SHA,SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,SSL_RSA_WITH_NULL_MD5,SSL_RSA_WITH_NULL_SHA,TLS_DH_anon_WITH_AES_128_CBC_SHA,TLS_DH_anon_WITH_AES_128_CBC_SHA256,TLS_DH_anon_WITH_AES_128_GCM_SHA256,TLS_DH_anon_WITH_AES_256_CBC_SHA,TLS_DH_anon_WITH_AES_256_CBC_SHA256,TLS_DH_anon_WITH_AES_256_GCM_SHA384,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_anon_WITH_AES_128_CBC_SHA,TLS_ECDH_anon_WITH_AES_256_CBC_SHA,TLS_ECDH_anon_WITH_NULL_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_NULL_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_RSA_WITH_NULL_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_NULL_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_NULL_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV,TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,TLS_KRB5_WITH_3DES_EDE_CBC_MD5,TLS_KRB5_WITH_3DES_EDE_CBC_SHA,TLS_KRB5_WITH_DES_CBC_MD5,TLS_KRB5_WITH_DES_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_NULL_SHA256", "description": "A comma-separared list of allowed ciphers.", "type": "string"}}}}}, "hdfs": {"description": "Spark-HDFS configuration properties", "type": "object", "properties": {"config-url": {"type": "string", "description": "Base URL that serves HDFS config files (hdfs-site.xml, core-site.xml). If not set, DCOS Spark will use its default configuration and read from DCOS HDFS."}}}}}, "version": "1.0.2-2.0.0", "postInstallNotes": "DC/OS Spark is being installed!\n\n\tDocumentation: https://docs.mesosphere.com/current/usage/service-guides/spark/\n\tIssues: https://docs.mesosphere.com/support/", "description": "Spark is a fast and general cluster computing system for Big Data. Documentation: https://docs.mesosphere.com/current/usage/service-guides/spark/", "licenses": [{"url": "https://raw.githubusercontent.com/apache/spark/master/LICENSE", "name": "Apache License Version 2.0"}], "name": "spark"}, {"tags": ["nflabs", "framework", "bigdata", "spark", "notebook", "interactive"], "marathon": {"v2AppMustacheTemplate": "ewogICAgImlkIjogIi96ZXBwZWxpbiIsCiAgICAiY29udGFpbmVyIjogewogICAgICAgICJ0eXBlIjogIkRPQ0tFUiIsCiAgICAgICAgImRvY2tlciI6IHsKICAgICAgICAgICAgImltYWdlIjogInt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuemVwcGVsaW59fSIsCiAgICAgICAgICAgICJuZXR3b3JrIjogIkhPU1QiCiAgICAgICAgfQogICAgfSwKICAgICJoZWFsdGhDaGVja3MiOiBbewogICAgICAgICJwcm90b2NvbCI6ICJUQ1AiLAogICAgICAgICJncmFjZVBlcmlvZFNlY29uZHMiOiAzMDAsCiAgICAgICAgImludGVydmFsU2Vjb25kcyI6IDYwLAogICAgICAgICJwb3J0SW5kZXgiOiAwLAogICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDE1LAogICAgICAgICJtYXhDb25zZWN1dGl2ZUZhaWx1cmVzIjogMwogICAgfV0sCiAgICAibGFiZWxzIjogewogICAgICAgICJEQ09TX1NFUlZJQ0VfTkFNRSI6ICJ7e3NlcnZpY2UubmFtZX19IiwKICAgICAgICAiRENPU19TRVJWSUNFX1NDSEVNRSI6ICJodHRwIiwKICAgICAgICAiRENPU19TRVJWSUNFX1BPUlRfSU5ERVgiOiAiMCIKICAgIH0sCiAgICAiZW52IjogewogICAgICAgICJTUEFSS19NRVNPU19FWEVDVVRPUl9ET0NLRVJfSU1BR0UiOiAie3sjc3BhcmsuZXhlY3V0b3JfZG9ja2VyX2ltYWdlfX17e3NwYXJrLmV4ZWN1dG9yX2RvY2tlcl9pbWFnZX19e3svc3BhcmsuZXhlY3V0b3JfZG9ja2VyX2ltYWdlfX17e15zcGFyay5leGVjdXRvcl9kb2NrZXJfaW1hZ2V9fXt7cmVzb3VyY2UuYXNzZXRzLmNvbnRhaW5lci5kb2NrZXIuc3Bhcmt9fXt7L3NwYXJrLmV4ZWN1dG9yX2RvY2tlcl9pbWFnZX19IiwKICAgICAgICAiU1BBUktfQ09SRVNfTUFYIjogInt7c3BhcmsuY29yZXNfbWF4fX0iLAogICAgICAgICJTUEFSS19FWEVDVVRPUl9NRU1PUlkiOiAie3tzcGFyay5leGVjdXRvcl9tZW1vcnl9fSIsCiAgICAgICAgIlpFUFBFTElOX0pBVkFfT1BUUyI6ICJ7e3NlcnZpY2UuemVwcGVsaW5famF2YV9vcHRzfX0iCiAgICB9LAogICAgImNtZCI6ICJzZWQgXCJzIzx2YWx1ZT44MDgwPC92YWx1ZT4jPHZhbHVlPiRQT1JUMDwvdmFsdWU+I1wiIDwgY29uZi96ZXBwZWxpbi1zaXRlLnhtbC50ZW1wbGF0ZSA+IGNvbmYvemVwcGVsaW4tc2l0ZS54bWwgJiYgc2VkIC1pIFwicyM8dmFsdWU+LTE8L3ZhbHVlPiM8dmFsdWU+JFBPUlQxPC92YWx1ZT4jXCIgY29uZi96ZXBwZWxpbi1zaXRlLnhtbCAmJiBTblBBUktfSE9NRV9UR1o9JChscyAke01FU09TX1NBTkRCT1h9L3NwYXJrLSoudGd6KSBTUEFSS19IT01FPSR7U1BBUktfSE9NRV9UR1olLnRnen0gYmluL3plcHBlbGluLnNoIHN0YXJ0IiwKICAgICJwb3J0cyI6IFswLCAwXSwKICAgICJjcHVzIjogMSwKICAgICJtZW0iOiAyMDQ4LjAsCiAgICAiZmV0Y2giOiBbCiAgICAgIHsidXJpIjogInt7I3NwYXJrLnVyaX19e3tzcGFyay51cml9fXt7L3NwYXJrLnVyaX19e3tec3BhcmsudXJpfX17e3Jlc291cmNlLmFzc2V0cy51cmlzLnNwYXJrfX17ey9zcGFyay51cml9fSIsICJjYWNoZSI6IHRydWV9CiAgICBdCn0K"}, "command": null, "scm": "https://github.com/apache/incubator-zeppelin", "resource": {"images": {"icon-small": "http://master.mesos:8082/zeppelin/images/icon-service-zeppelin-small.png", "icon-medium": "http://master.mesos:8082/zeppelin/images/icon-service-zeppelin-medium.png", "icon-large": "http://master.mesos:8082/zeppelin/images/icon-service-zeppelin-large.png"}, "assets": {"uris": {"spark": "http://master.mesos:8082/zeppelin/uris/spark-1.6.0.tgz"}, "container": {"docker": {"zeppelin": "master.mesos:5000/mesosphere/zeppelin:0.5.6-3", "spark": "master.mesos:5000/mesosphere/spark:1.6.0"}}}}, "name": "zeppelin", "packagingVersion": "2.0", "maintainer": "support@mesosphere.io", "releaseVersion": 3, "config": {"$schema": "http://json-schema.org/schema#", "type": "object", "properties": {"service": {"type": "object", "properties": {"name": {"type": "string", "default": "zeppelin"}, "zeppelin_java_opts": {"type": "string", "description": "Sets ZEPPELIN_JAVA_OPTS. You can use this to set arbitrary spark configuration properties (e.g. spark.mesos.uris)", "default": "-Dspark.mesos.coarse=true -Dspark.mesos.executor.home=/opt/spark/dist"}}}, "spark": {"type": "object", "properties": {"uri": {"type": "string", "description": "A URI serving the Spark distribution to use for the local Zeppelin Spark context. By default, this will use the value specified in this package's resource.json"}, "executor_docker_image": {"type": "string", "description": "The docker image to launch Spark executors with. By default, this will use this value specified in this package's resource.json"}, "cores_max": {"type": "string", "description": "Sets spark.cores.max", "default": ""}, "executor_memory": {"type": "string", "description": "Sets spark.executor.memory"}}}}}, "version": "0.5.6", "postInstallNotes": "DC/OS Zeppelin is being installed!\n\n\tDocumentation: https://docs.mesosphere.com/zeppelin/\n\tIssues: https://docs.mesosphere.com/support/", "framework": true, "website": "https://docs.mesosphere.com/zeppelin/", "description": "Zeppelin is a web-based notebook that enables interactive data analytics"}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment