marathon_deploy 0.1.41 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|