marathon_deploy 0.1.51 → 0.1.52

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8ec0de90dd1044ab3fb6c745573bd7c581b05cf
4
- data.tar.gz: 9acb752923bc76613fb52dc434321ca91e59a131
3
+ metadata.gz: a265f5dc795bc51e9c035966521634822beb2fc9
4
+ data.tar.gz: 00e27a266c4d60bd58d47a1a494851067b29f34a
5
5
  SHA512:
6
- metadata.gz: 6fe017f45a353d2facdeb6be31d6242c236cdb4eca9c6dc50774f168a046a42e94bb52f2568cfe2ba828a8e510391fa2ca24fcd7d5e87d89f541463babd68c99
7
- data.tar.gz: ed35c7dece6853974fcb02017d3f0264495c488fb807e85f607b535691db3eb18d22ea4856c1973469c237dfd3d4161beb67bf0487460f1df8294c513704aac5
6
+ metadata.gz: 75def4b7aa80d74ba68280f08a9fc1ffe94333f1b50f6c36c792223093a78ba4e62e560f76ea210ac61cee72c4d2c4b513a9472a5e5168cd8b9842a28f1675aa
7
+ data.tar.gz: c10a6e7281e272d6126440e2cd6649c7bc672751e3163fbecfb55c1212e5863ee21ee28716f702729d71137f225b7d02457051dea27a3796cc4f7ffb87d5e023
data/README.md CHANGED
@@ -42,13 +42,14 @@ Executables from this gem:
42
42
  ```
43
43
  >marathon_deploy -h
44
44
  Usage: bin/marathon_deploy [options]
45
- -u, --url MARATHON_URL(S) Default: ["http://localhost:8080"]
46
- -l, --logfile LOGFILE Default: STDOUT
47
- -d, --debug Run in debug mode
48
- -v, --version Version info
49
- -f, --force Force deployment when sending same deploy JSON to Marathon
50
- -n, --noop No action. Just display what would be performed.
51
- -e, --environment ENVIRONMENT Default: PREPRODUC
45
+ -u, --url MARATHON_URL(S) Default: ["http://localhost:8080"]
46
+ -l, --logfile LOGFILE Default: STDOUT
47
+ -d, --debug Run in debug mode
48
+ -v, --version Version info
49
+ -f, --force Force deployment when sending same deploy JSON to Marathon
50
+ -n, --noop No action. Just display what would be performed.
51
+ -i, --ignore-preproduction-defaults Ignores the preproduction defaults for cpu, memory, and instance limits
52
+ -e, --environment ENVIRONMENT Default: PREPRODUC
52
53
  ```
53
54
 
54
55
  ### Overriding configuration based on environment
data/bin/marathon_deploy CHANGED
@@ -21,16 +21,17 @@ 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
  options[:remove_elements] = MarathonDeploy::MarathonDefaults::DEFAULT_REMOVE_ELEMENTS
24
+ options[:ignore_preproduction_defaults] = MarathonDeploy::MarathonDefaults::DEFAULT_IGNORE_PREPRODUCTION_DEFAULTS
24
25
  options[:marathon_username] = nil
25
26
  options[:marathon_password] = nil
26
-
27
-
27
+
28
+
28
29
  OptionParser.new do |opts|
29
30
  opts.banner = "Usage: #{$0} [options]"
30
31
  opts.release = MarathonDeploy::VERSION
31
-
32
- opts.on("-u","--url MARATHON_URL(S)", Array, "Default: #{options[:marathon_endpoints]}") do |u|
33
- options[:marathon_endpoints] = u
32
+
33
+ opts.on("-u","--url MARATHON_URL(S)", Array, "Default: #{options[:marathon_endpoints]}") do |u|
34
+ options[:marathon_endpoints] = u
34
35
  end
35
36
 
36
37
  opts.on("-U","--username USERNAME", "Marathon authentication username") do |u|
@@ -40,15 +41,15 @@ OptionParser.new do |opts|
40
41
  opts.on("-p","--password PASSWORD", "Marathon authentication password") do |p|
41
42
  options[:marathon_password] = p
42
43
  end
43
-
44
+
44
45
  opts.on("-l", "--logfile LOGFILE", "Default: STDOUT") do |l|
45
- options[:logfile] = l
46
+ options[:logfile] = l
46
47
  end
47
-
48
+
48
49
  opts.on("-d", "--debug", "Run in debug mode") do |d|
49
50
  options[:debug] = Logger::DEBUG
50
51
  end
51
-
52
+
52
53
  opts.on("-v", "--version", "Version info") do |v|
53
54
  puts "#{$0} version #{opts.release}"
54
55
  exit
@@ -70,11 +71,15 @@ OptionParser.new do |opts|
70
71
  options[:environment] = e
71
72
  end
72
73
 
74
+ opts.on("-i", "--ignore-preproduction-defaults", "Default: #{options[:ignore_preproduction_defaults]}" ) do |i|
75
+ options[:ignore_preproduction_defaults] = true
76
+ end
77
+
73
78
  opts.on_tail("-h", "--help", "Show this message") do
74
79
  puts opts
75
80
  puts " ----------------- Additional Info -----------------", <<-DESCRIPTION
76
81
  * Marathon Env variables:
77
- - Env variables with the prefix "#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}" will be injected into the deployment plan.
82
+ - Env variables with the prefix "#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}" will be injected into the deployment plan.
78
83
  - The prefix "#{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}" will be removed before being added to the marathon json payload.
79
84
  - Example: Env variable #{MarathonDeploy::MarathonDefaults::ENVIRONMENT_VARIABLE_PREFIX}DEBUG=True with be passed as DEBUG=True to the marathon-api.
80
85
  * Macros:
@@ -83,8 +88,8 @@ OptionParser.new do |opts|
83
88
  - If any marcos are not defined by Env variables, deployment will fail.
84
89
  DESCRIPTION
85
90
  exit
86
- end
87
-
91
+ end
92
+
88
93
  end.parse!
89
94
 
90
95
  abort("Ambiguous arguments: #{ARGV.join(',')}. Only one deploy file argument may be passed.") if (ARGV.length > 1)
@@ -97,7 +102,7 @@ if (!argfile.nil?)
97
102
  elsif (File.file?(DEFAULT_DEPLOYFILE))
98
103
  deployfile = DEFAULT_DEPLOYFILE
99
104
  else
100
- abort("No deploy file argument provided and default \'#{DEFAULT_DEPLOYFILE}\' does not exist in current directory \'#{Dir.pwd}\'")
105
+ abort("No deploy file argument provided and default \'#{DEFAULT_DEPLOYFILE}\' does not exist in current directory \'#{Dir.pwd}\'")
101
106
  end
102
107
 
103
108
  if options[:marathon_username] and options[:marathon_password]
@@ -108,9 +113,9 @@ end
108
113
  $LOG = options[:logfile] ? Logger.new(options[:logfile]) : Logger.new(STDOUT)
109
114
  $LOG.level = options[:debug]
110
115
 
111
- noop = options[:noop]
116
+ noop = options[:noop]
112
117
  environment = MarathonDeploy::Environment.new(options[:environment])
113
-
118
+
114
119
  marathon_endpoints = Array.new
115
120
  if (options[:marathon_endpoints].nil?)
116
121
  if (environment.is_production?)
@@ -131,7 +136,7 @@ remove_elements = Array.new
131
136
  eval n if not MarathonDeploy::MarathonDefaults::DEFAULT_KEEP_ELEMENTS.include? n
132
137
  end
133
138
  end
134
-
139
+
135
140
  begin
136
141
  application = MarathonDeploy::Application.new(
137
142
  :deployfile => deployfile,
@@ -155,8 +160,10 @@ rescue MarathonDeploy::Error::BadFormatError => e
155
160
  exit!
156
161
  end
157
162
 
158
- if (!environment.is_production?)
159
- application.overlay_preproduction_settings
163
+ unless options[:ignore_preproduction_defaults]
164
+ if (!environment.is_production?)
165
+ application.overlay_preproduction_settings
166
+ end
160
167
  end
161
168
 
162
169
  display_msg = " MARATHON JSON DEPLOYMENT INSTRUCTIONS "
@@ -171,7 +178,7 @@ marathon_endpoints.each do |marathon_url|
171
178
  next if (noop)
172
179
  client = MarathonDeploy::MarathonClient.new(marathon_url)
173
180
  client.application = application
174
- client.deploy
181
+ client.deploy
175
182
  rescue MarathonDeploy::Error::MissingMarathonAttributesError,MarathonDeploy::Error::BadURLError, Timeout::Error => e
176
183
  $LOG.error(e.message)
177
184
  exit!
@@ -4,7 +4,7 @@ require 'logger'
4
4
 
5
5
  module MarathonDeploy
6
6
  module MarathonDefaults
7
-
7
+
8
8
  class << self
9
9
  attr_accessor :marathon_username, :marathon_password
10
10
  end
@@ -25,6 +25,7 @@ module MarathonDeploy
25
25
  MARATHON_DEPLOYMENT_REST_PATH = '/v2/deployments/'
26
26
  DEFAULT_FORCE_DEPLOY = false
27
27
  DEFAULT_NOOP = false
28
+ DEFAULT_IGNORE_PREPRODUCTION_DEFAULTS = false
28
29
  DEFAULT_REMOVE_ELEMENTS = []
29
30
  DEFAULT_KEEP_ELEMENTS = [':id']
30
31
  ENVIRONMENT_VARIABLE_PREFIX = 'MARATHON_DEPLOY_'
@@ -44,37 +45,37 @@ module MarathonDeploy
44
45
  }
45
46
 
46
47
  @@required_marathon_env_variables = %w[]
47
-
48
+
48
49
  #@@required_marathon_attributes = %w[id env container healthChecks args storeUrls].map(&:to_sym)
49
50
  @@required_marathon_attributes = %w[id].map(&:to_sym)
50
-
51
+
51
52
  def self.missing_attributes(json)
52
53
  json = Utils.symbolize(json)
53
54
  missing = []
54
55
  @@required_marathon_attributes.each do |att|
55
56
  if (!json[att])
56
- missing << att
57
+ missing << att
57
58
  end
58
59
  end
59
60
  return missing
60
61
  end
61
-
62
+
62
63
  def self.missing_envs(json)
63
64
  json = Utils.symbolize(json)
64
-
65
+
65
66
  if (!json.key?(:env))
66
- raise Error::MissingMarathonAttributesError, "no env attribute found in deployment file", caller
67
+ raise Error::MissingMarathonAttributesError, "no env attribute found in deployment file", caller
67
68
  end
68
-
69
+
69
70
  missing = []
70
71
  @@required_marathon_env_variables.each do |variable|
71
72
  if (!json[:env][variable])
72
- missing << variable
73
+ missing << variable
73
74
  end
74
75
  end
75
76
  return missing
76
- end
77
-
77
+ end
78
+
78
79
  def self.overlay_preproduction_settings(json)
79
80
  json = Utils.deep_symbolize(json)
80
81
  @@preproduction_override.each do |property,value|
@@ -90,6 +91,6 @@ module MarathonDeploy
90
91
  end
91
92
  return json
92
93
  end
93
-
94
+
94
95
  end
95
96
  end
@@ -1,3 +1,3 @@
1
1
  module MarathonDeploy
2
- VERSION = "0.1.51"
2
+ VERSION = "0.1.52"
3
3
  end
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.51
4
+ version: 0.1.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Colby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-07 00:00:00.000000000 Z
11
+ date: 2017-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger