marathon_deploy 0.1.41 → 0.1.43
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +1 -1
- data/bin/marathon_deploy +21 -7
- data/lib/marathon_deploy/application.rb +11 -2
- data/lib/marathon_deploy/marathon_defaults.rb +2 -0
- data/lib/marathon_deploy/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDkxMGI4MjYyMjRhNjBjNTU0MzBjNjM2MjlkYzZjY2Y1NzY0NmViNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWIxNDUyNzVlNGNkZjEwYzI1YmJkMzA0NjVmYjk3NGNmMzVjZmZiMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjNkZTQzYjBkN2I1Y2MyNWQ0MmQyYmE3MzI4ODA5ODY1ODcxOTExYmNjMzVj
|
10
|
+
ZmIxYWM2Y2FiYTU2NTNjZjgzYjRjZjVkYThkYTdmYjRhZDFmZDc0NGJlMzM5
|
11
|
+
MTA2MTc2OGFmMDA1MDQ1ZjViYzc5ZjE2MDZjYjMyMmEzYWJhOTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjNiNjQwMzA3YzQ5YWEzMGU3OWQzYTIzYzIwNzc4MDY4ZTJiYmM4NGYzNTNj
|
14
|
+
MDM5MTU5MDgwNWZlMWNhZWU5MTkwNjBkYTVmZGY2Mjk2MjYxYWFlNWU3ZmIy
|
15
|
+
NTVmNDAxODg3NGIyZDI4Y2QxMjQ4YTMzOWQ4NzRjY2VmZTI4ZTI=
|
data/README.md
CHANGED
data/bin/marathon_deploy
CHANGED
@@ -11,7 +11,7 @@ require 'logger'
|
|
11
11
|
|
12
12
|
STDOUT.sync = true
|
13
13
|
options = {}
|
14
|
-
|
14
|
+
|
15
15
|
# DEFAULTS
|
16
16
|
DEFAULT_DEPLOYFILE = MarathonDeploy::MarathonDefaults::DEFAULT_DEPLOYFILE
|
17
17
|
options[:debug] = MarathonDeploy::MarathonDefaults::DEFAULT_LOGLEVEL
|
@@ -20,6 +20,7 @@ options[:marathon_endpoints] = MarathonDeploy::MarathonDefaults::DEFAULT_PREPROD
|
|
20
20
|
options[:logfile] = MarathonDeploy::MarathonDefaults::DEFAULT_LOGFILE
|
21
21
|
options[:force] = MarathonDeploy::MarathonDefaults::DEFAULT_FORCE_DEPLOY
|
22
22
|
options[:noop] = MarathonDeploy::MarathonDefaults::DEFAULT_NOOP
|
23
|
+
options[:remove_elements] = MarathonDeploy::MarathonDefaults::DEFAULT_REMOVE_ELEMENTS
|
23
24
|
|
24
25
|
|
25
26
|
OptionParser.new do |opts|
|
@@ -42,20 +43,23 @@ OptionParser.new do |opts|
|
|
42
43
|
puts "#{$0} version #{opts.release}"
|
43
44
|
exit
|
44
45
|
end
|
45
|
-
|
46
|
+
|
46
47
|
opts.on("-f", "--force", "Force deployment when sending same deploy JSON to Marathon") do |f|
|
47
48
|
options[:force] = true
|
48
49
|
end
|
49
|
-
|
50
|
+
|
50
51
|
opts.on("-n", "--noop", "No action. Just display what would be performed.") do |f|
|
51
52
|
options[:noop] = true
|
52
53
|
end
|
53
|
-
|
54
|
-
|
54
|
+
|
55
|
+
opts.on("-r", "--remove ELEMENTS", Array, "Remove elemensts from deploymnet plan (example -r :constraints,:healthChecks)") do |r|
|
56
|
+
options[:remove_elements] = r
|
57
|
+
end
|
58
|
+
|
55
59
|
opts.on("-e", "--environment ENVIRONMENT", "Default: #{options[:environment]}" ) do |e|
|
56
60
|
options[:environment] = e
|
57
61
|
end
|
58
|
-
|
62
|
+
|
59
63
|
opts.on_tail("-h", "--help", "Show this message") do
|
60
64
|
puts opts
|
61
65
|
puts " ----------------- Additional Info -----------------", <<-DESCRIPTION
|
@@ -102,9 +106,19 @@ marathon_endpoints = Array.new
|
|
102
106
|
else
|
103
107
|
marathon_endpoints = options[:marathon_endpoints]
|
104
108
|
end
|
109
|
+
|
110
|
+
remove_elements = Array.new
|
111
|
+
if (options[:remove_elements].nil?)
|
112
|
+
remove_elements = MarathonDeploy::MarathonDefaults::DEFAULT_REMOVE_ELEMENTS
|
113
|
+
else
|
114
|
+
# converts quotes srtings in array to strings
|
115
|
+
remove_elements = options[:remove_elements].map do |n|
|
116
|
+
eval n if not MarathonDeploy::MarathonDefaults::DEFAULT_KEEP_ELEMENTS.include? n
|
117
|
+
end
|
118
|
+
end
|
105
119
|
|
106
120
|
begin
|
107
|
-
application = MarathonDeploy::Application.new(:deployfile => deployfile, :force => options[:force])
|
121
|
+
application = MarathonDeploy::Application.new(:deployfile => deployfile, :force => options[:force], :remove_elements => remove_elements)
|
108
122
|
rescue MarathonDeploy::Error::IOError, MarathonDeploy::Error::UndefinedMacroError,MarathonDeploy::Error::MissingMarathonAttributesError,MarathonDeploy::Error::UnsupportedFileExtension => e
|
109
123
|
$LOG.debug(e)
|
110
124
|
$LOG.error(e.message)
|
@@ -13,7 +13,7 @@ module MarathonDeploy
|
|
13
13
|
# @param [Hash] options hash for the application object
|
14
14
|
# @option options [Boolean] :force force a deployment by including an environment variable containing a random string value in the json marathon payload
|
15
15
|
# @option options [String] :deployfile file template and path. default deploy.yml in current directory
|
16
|
-
def initialize(options={ :force => false, :deployfile => 'deploy.yml'})
|
16
|
+
def initialize(options={ :force => false, :deployfile => 'deploy.yml', :remove_elements => []})
|
17
17
|
|
18
18
|
deployfile = options[:deployfile]
|
19
19
|
|
@@ -59,6 +59,7 @@ module MarathonDeploy
|
|
59
59
|
@json = Utils.deep_symbolize(@json)
|
60
60
|
|
61
61
|
add_identifier if (options[:force])
|
62
|
+
remove_elements(options[:remove_elements])
|
62
63
|
|
63
64
|
inject_envs = ENV.select { |k,v| /^#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}/.match(k) }
|
64
65
|
cleaned_envs = Hash[inject_envs.map { |k,v| [k.gsub(/^#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}/,''), v ] }]
|
@@ -78,7 +79,15 @@ module MarathonDeploy
|
|
78
79
|
# Time.now.to_i
|
79
80
|
@json[:env]['UNIQUE_ID'] = "#{id}_#{random}"
|
80
81
|
end
|
81
|
-
|
82
|
+
|
83
|
+
def remove_elements(remove_array)
|
84
|
+
if (remove_array.is_a?(Array))
|
85
|
+
remove_array.each do |element|
|
86
|
+
@json.delete(element)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
82
91
|
def to_s
|
83
92
|
JSON.pretty_generate(@json)
|
84
93
|
end
|
@@ -20,6 +20,8 @@ module MarathonDeploy
|
|
20
20
|
MARATHON_DEPLOYMENT_REST_PATH = '/v2/deployments/'
|
21
21
|
DEFAULT_FORCE_DEPLOY = false
|
22
22
|
DEFAULT_NOOP = false
|
23
|
+
DEFAULT_KEEP_ELEMENTS = [':cpus', ':mem', ':instances', ':env']
|
24
|
+
DEFAULT_REMOVE_ELEMENTS = []
|
23
25
|
ENVIRONMENT_VARIABLE_PREFIX = 'MARATHON_DEPLOY_'
|
24
26
|
|
25
27
|
@@preproduction_override = {
|
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.43
|
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-
|
11
|
+
date: 2015-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger
|