marathon_deploy 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/TODO +1 -1
- data/bin/expand_macros +1 -3
- data/bin/marathon_deploy +11 -0
- data/examples/{jondeploy.yaml → jondeploy.yml} +1 -2
- data/lib/marathon_deploy/application.rb +4 -2
- data/lib/marathon_deploy/marathon_defaults.rb +2 -1
- data/lib/marathon_deploy/version.rb +1 -1
- metadata +8 -8
- /data/examples/{deploy.yaml → deploy.yml} +0 -0
- /data/examples/{jondeploy2.yaml → jondeploy2.yml} +0 -0
- /data/examples/{nohealthchecks.yaml → nohealthchecks.yml} +0 -0
- /data/examples/{simple-python-example.yaml → simple-python-example.yml} +0 -0
- /data/examples/{testout.yaml → testout.yml} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d671c15ac81368b5455e674664ff50a51513226
|
4
|
+
data.tar.gz: 0357ea94158650276083212c1bfeec11767a35c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b15f9e3b4e55178e5d9c99a04fe04e96ea91f90f5c47bb4c3a63c9c7e159422b634db2d76fc5db6850de33607640908a8a99141d68e1d16e287e35256c62c88b
|
7
|
+
data.tar.gz: 4dc65daef367d3bb56a6de1ef5224d85cccf21fe6174497b81e723e9c52fc5b2f7479d89742b68178b69dd56933203d4c51bb2a71975097c73903f0bdc4a726b
|
data/TODO
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
- SLACK notification
|
2
2
|
- https://mesosphere.com/blog/2015/04/02/continuous-deployment-with-mesos-marathon-docker/
|
3
3
|
- log to database
|
4
|
-
- command line option for deployment-strategy: minimumHealthCapacity / maximumOverCapacity
|
4
|
+
- command line option for deployment-strategy: minimumHealthCapacity / maximumOverCapacity
|
data/bin/expand_macros
CHANGED
@@ -6,12 +6,10 @@ require 'marathon_deploy/version'
|
|
6
6
|
require 'optparse'
|
7
7
|
require 'logger'
|
8
8
|
|
9
|
-
DEFAULT_TEMPLATE_FILENAME = 'dockerfile.tpl'
|
10
|
-
|
11
9
|
options = {}
|
12
10
|
|
13
11
|
# DEFAULTS
|
14
|
-
options[:template] =
|
12
|
+
options[:template] = 'dockerfile.tpl'
|
15
13
|
options[:debug] = Logger::FATAL #Logger::INFO
|
16
14
|
options[:outfile] = false
|
17
15
|
options[:logfile] = false
|
data/bin/marathon_deploy
CHANGED
@@ -21,6 +21,7 @@ options[:logfile] = MarathonDeploy::MarathonDefaults::DEFAULT_LOGFILE
|
|
21
21
|
options[:force] = MarathonDeploy::MarathonDefaults::DEFAULT_FORCE_DEPLOY
|
22
22
|
options[:noop] = MarathonDeploy::MarathonDefaults::DEFAULT_NOOP
|
23
23
|
|
24
|
+
|
24
25
|
OptionParser.new do |opts|
|
25
26
|
opts.banner = "Usage: #{$0} [options]"
|
26
27
|
opts.release = MarathonDeploy::VERSION
|
@@ -57,6 +58,16 @@ OptionParser.new do |opts|
|
|
57
58
|
|
58
59
|
opts.on_tail("-h", "--help", "Show this message") do
|
59
60
|
puts opts
|
61
|
+
puts " ----------------- Additional Info -----------------", <<-DESCRIPTION
|
62
|
+
* Marathon Env variables:
|
63
|
+
- Env variables with the prefix "#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}" will be injected into the deployment plan.
|
64
|
+
- The prefix "#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}" will be removed before being added to the marathon json payload.
|
65
|
+
- Example: Env variable #{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}DEBUG=True with be passed as DEBUG=True to the marathon-api.
|
66
|
+
* Macros:
|
67
|
+
- Marcos in the deploy yaml/json file use the format %%name%%.
|
68
|
+
- Macros in the deploy yaml/json file must have a corresponding Env variable with the same name.
|
69
|
+
- If any marcos are not defined by Env variables, deployment will fail.
|
70
|
+
DESCRIPTION
|
60
71
|
exit
|
61
72
|
end
|
62
73
|
|
@@ -2,7 +2,6 @@
|
|
2
2
|
cmd: while true; echo "HELLO WORLD $(date)"; do sleep 1 ; done
|
3
3
|
cpus: 0.5
|
4
4
|
env:
|
5
|
-
APPLICATION_NAME: public-search-germany-webapp
|
6
5
|
CONFIG_ASSEMBLER_BASE_URL: http://mobile-config-assembler.service.consul/config-assembler
|
7
6
|
JAVA_XMS: 252m
|
8
7
|
JAVA_XMX: 504m
|
@@ -10,6 +9,6 @@ env:
|
|
10
9
|
SERVICE_8009_NAME: public-search-germany-webapp
|
11
10
|
SERVICE_8009_TAGS: ajp
|
12
11
|
id: public-search-germany-webapp
|
13
|
-
instances:
|
12
|
+
instances: 2
|
14
13
|
mem: 32
|
15
14
|
uris: []
|
@@ -8,7 +8,6 @@ module MarathonDeploy
|
|
8
8
|
class Application
|
9
9
|
|
10
10
|
attr_reader :json, :id
|
11
|
-
attr_accessor :envs
|
12
11
|
|
13
12
|
def initialize(options={})
|
14
13
|
default_options = {
|
@@ -52,7 +51,10 @@ module MarathonDeploy
|
|
52
51
|
@json = Utils.deep_symbolize(@json)
|
53
52
|
|
54
53
|
add_identifier if (options[:force])
|
55
|
-
|
54
|
+
|
55
|
+
inject_envs = ENV.select { |k,v| /^#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}/.match(k) }
|
56
|
+
cleaned_envs = inject_envs.map { |k,v| [k.gsub(/^#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}/,''), v ] }.to_h
|
57
|
+
self.add_envs cleaned_envs
|
56
58
|
end
|
57
59
|
|
58
60
|
def overlay_preproduction_settings
|
@@ -13,13 +13,14 @@ module MarathonDeploy
|
|
13
13
|
DEFAULT_ENVIRONMENT_NAME = 'PREPRODUCTION'
|
14
14
|
DEFAULT_PREPRODUCTION_MARATHON_ENDPOINTS = ['http://localhost:8080']
|
15
15
|
DEFAULT_PRODUCTION_MARATHON_ENDPOINTS = ['http://paasmaster46-1.mobile.rz:8080']
|
16
|
-
DEFAULT_DEPLOYFILE = 'deploy.
|
16
|
+
DEFAULT_DEPLOYFILE = 'deploy.yml'
|
17
17
|
DEFAULT_LOGFILE = false
|
18
18
|
DEFAULT_LOGLEVEL = Logger::INFO
|
19
19
|
MARATHON_APPS_REST_PATH = '/v2/apps/'
|
20
20
|
MARATHON_DEPLOYMENT_REST_PATH = '/v2/deployments/'
|
21
21
|
DEFAULT_FORCE_DEPLOY = false
|
22
22
|
DEFAULT_NOOP = false
|
23
|
+
ENVIRONMENT_VARIABLE_PREFIX = 'MARATHON_DEPLOY_'
|
23
24
|
|
24
25
|
@@preproduction_override = {
|
25
26
|
:instances => 5,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marathon_deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Colby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger
|
@@ -101,15 +101,15 @@ files:
|
|
101
101
|
- bin/json2yaml
|
102
102
|
- bin/marathon_deploy
|
103
103
|
- examples/deploy.json
|
104
|
-
- examples/deploy.
|
105
|
-
- examples/jondeploy.
|
106
|
-
- examples/jondeploy2.
|
107
|
-
- examples/nohealthchecks.
|
104
|
+
- examples/deploy.yml
|
105
|
+
- examples/jondeploy.yml
|
106
|
+
- examples/jondeploy2.yml
|
107
|
+
- examples/nohealthchecks.yml
|
108
108
|
- examples/public-search-germany-webapp.pre.json
|
109
109
|
- examples/run.sh
|
110
|
-
- examples/simple-python-example.
|
110
|
+
- examples/simple-python-example.yml
|
111
111
|
- examples/testout.json
|
112
|
-
- examples/testout.
|
112
|
+
- examples/testout.yml
|
113
113
|
- lib/marathon_deploy.rb
|
114
114
|
- lib/marathon_deploy/application.rb
|
115
115
|
- lib/marathon_deploy/deployment.rb
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|