cf_deployer 1.3.6 → 1.3.8

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: a6af62f01e593931a2d070b8bf01c2ba1edf70db
4
- data.tar.gz: ee8ae861a4e639ee102db4b66d9b927b012b3a98
3
+ metadata.gz: 99837edd085628d600239c517e9384c05dd2186e
4
+ data.tar.gz: ff5b6d33be922e3aeaa0f609991f799e0064e623
5
5
  SHA512:
6
- metadata.gz: 8cb4e81f17e569102839bb18b09ef13e25cf3ad0717410e47ae398afc227a78bb9f8b06eb9db7a8f23aaa9996adbe1db2a6e11650961e1d3e0798922057c091e
7
- data.tar.gz: 59d4b6d2031087f1e144c246a89b35c6dd6b13fb195efcbe6418bb177095b3b9a80c1a361fe273b931383958e78845b85a9848da461c91ba19636b5fa2be6969
6
+ metadata.gz: 7ba8da26ac2cfb06a31fa2acff9ff3fce51c2a2328c79dc6c9542d78b9741d84bf8296e10945eb5a50b631014ae9c9ea8463ee13ab0d2ff6a6ccd7fbd1714941
7
+ data.tar.gz: 8b18b73a9110ba2d0dbcb953207770e2d83dd92bfcbf72db7a4a7a855f62042ea035141ff7f4a6523871166f8a214c3a594cd8c4d8e8a2f8eb7b9b87ce08308d
data/.gitignore CHANGED
@@ -27,3 +27,4 @@ config/
27
27
  tags
28
28
  .rbenv-version
29
29
  .ruby-version
30
+ Gemfile.lock
data/ChangeLog.md CHANGED
@@ -31,3 +31,18 @@ version 1.3.1
31
31
 
32
32
  version 1.3.2
33
33
  - Display details of error message when referenced components do not exist
34
+
35
+ version 1.3.3
36
+ - increase default timeout from 900 to 1800
37
+
38
+ version 1.3.6
39
+ - explicitly enforce aws-sdk v.1.44.0 as a dependency
40
+
41
+ version 1.3.7
42
+ - Increased the number of AWS-SDK retries
43
+ - Added missing after-update hook to config validation
44
+ - Added rescue around healthy_instance_count, to prevent intermittent failures from stopping deployment
45
+
46
+ version 1.3.8
47
+ - Moved dependencies out of Gemfile and into gemspec
48
+ - Removed Gemfile.lock
data/Gemfile CHANGED
@@ -1,11 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in eb_deployer.gemspec
4
3
  gemspec
5
-
6
- gem 'yard'
7
- gem 'pry'
8
- gem 'rspec'
9
- gem 'rake'
10
- gem 'rainbow'
11
- gem 'diffy'
data/cf_deployer.gemspec CHANGED
@@ -14,6 +14,10 @@ Gem::Specification.new do |gem|
14
14
  gem.add_runtime_dependency 'thor'
15
15
  gem.add_runtime_dependency 'rainbow'
16
16
  gem.add_runtime_dependency 'diffy'
17
+ gem.add_development_dependency 'yard', '~> 0.8.7.6'
18
+ gem.add_development_dependency 'pry', '~> 0.10.1'
19
+ gem.add_development_dependency 'rspec', '2.14.1'
20
+ gem.add_development_dependency 'rake', '~> 10.3.0'
17
21
 
18
22
  gem.files = `git ls-files`.split($\).reject {|f| f =~ /^samples\// }
19
23
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -6,7 +6,7 @@ module CfDeployer
6
6
 
7
7
  CommonInputs = [:application, :environment, :component, :region]
8
8
  EnvironmentOptions = [:settings, :inputs, :tags, :components]
9
- ComponentOptions = [:settings, :inputs, :tags, :'depends-on', :'deployment-strategy', :'before-destroy', :'after-create', :'after-swap', :'defined_outputs', :'defined_parameters', :config_dir, :capabilities, :notify]
9
+ ComponentOptions = [:settings, :inputs, :tags, :'depends-on', :'deployment-strategy', :'before-destroy', :'after-create', :'after-swap', :'after-update', :'defined_outputs', :'defined_parameters', :config_dir, :capabilities, :notify]
10
10
 
11
11
  def validate config, validate_inputs = true
12
12
  @config = config
@@ -53,11 +53,16 @@ module CfDeployer
53
53
  private
54
54
 
55
55
  def healthy_instance_count
56
- count = auto_scaling_instances.count do |instance|
57
- instance.health_status == 'HEALTHY' && (load_balancers.empty? || instance_in_service?( instance.ec2_instance ))
56
+ begin
57
+ count = auto_scaling_instances.count do |instance|
58
+ instance.health_status == 'HEALTHY' && (load_balancers.empty? || instance_in_service?( instance.ec2_instance ))
59
+ end
60
+ Log.info "Healthy instance count: #{count}"
61
+ count
62
+ rescue => e
63
+ Log.info "Unable to determine healthy instance count due to error: #{e.message}"
64
+ -1
58
65
  end
59
- Log.info "Healthy instance count: #{count}"
60
- count
61
66
  end
62
67
 
63
68
  def instance_in_service? instance
@@ -1,3 +1,3 @@
1
1
  module CfDeployer
2
- VERSION = "1.3.6"
2
+ VERSION = "1.3.8"
3
3
  end
data/lib/cf_deployer.rb CHANGED
@@ -38,7 +38,7 @@ require_relative 'cf_deployer/defaults'
38
38
 
39
39
  module CfDeployer
40
40
 
41
- AWS.config(:max_retries => 5)
41
+ AWS.config(:max_retries => 20)
42
42
 
43
43
  def self.config opts
44
44
  config = self.parseconfig opts, false
@@ -33,14 +33,14 @@ describe 'Deploy' do
33
33
  allow(CfDeployer::Stack).to receive(:new).with('cf-deployer-sample-cname-swap-dev-web-G', 'web', anything()) { green_stack }
34
34
  allow(CfDeployer::Driver::Elb).to receive(:new) { elb_driver }
35
35
  allow(CfDeployer::Driver::Route53).to receive(:new) { dns_driver }
36
- allow(dns_driver).to receive(:find_alias_target).with('zhao.com', 'test1.zhao.com'){ 'BLUE-elb.zhao.com' }
37
- allow(elb_driver).to receive(:find_dns_and_zone_id).with('BLUE-elb') { {:dns_name => 'blue-elb.zhao.com', :canonical_hosted_zone_name_id => 'BLUE111'}}
38
- allow(elb_driver).to receive(:find_dns_and_zone_id).with('GREEN-elb') { {:dns_name => 'green-elb.zhao.com', :canonical_hosted_zone_name_id => 'GREEN111'}}
36
+ allow(dns_driver).to receive(:find_alias_target).with('aws-dev.manheim.com', 'cf-deployer-test.aws-dev.manheim.com'){ 'BLUE-elb.aws-dev.manheim.com' }
37
+ allow(elb_driver).to receive(:find_dns_and_zone_id).with('BLUE-elb') { {:dns_name => 'blue-elb.aws-dev.manheim.com', :canonical_hosted_zone_name_id => 'BLUE111'}}
38
+ allow(elb_driver).to receive(:find_dns_and_zone_id).with('GREEN-elb') { {:dns_name => 'green-elb.aws-dev.manheim.com', :canonical_hosted_zone_name_id => 'GREEN111'}}
39
39
  allow(CfDeployer::Driver::AutoScalingGroup).to receive(:new).with('blueASG') { blue_asg_driver }
40
40
  allow(CfDeployer::Driver::AutoScalingGroup).to receive(:new).with('greenASG') { green_asg_driver }
41
41
  allow(green_asg_driver).to receive(:describe) {{desired: 0, min: 0, max: 0}}
42
42
  allow(blue_asg_driver).to receive(:describe) {{desired: 2, min: 1, max: 5}}
43
- allow(dns_driver).to receive(:set_alias_target).with('zhao.com', 'test1.zhao.com', 'GREEN111', 'green-elb.zhao.com')
43
+ allow(dns_driver).to receive(:set_alias_target).with('aws-dev.manheim.com', 'cf-deployer-test.aws-dev.manheim.com', 'GREEN111', 'green-elb.aws-dev.manheim.com')
44
44
  expect(green_asg_driver).to receive(:warm_up).with(2)
45
45
  CfDeployer::CLI.start(['deploy', 'dev', 'web', '-f', 'samples/cname-swap/cf_deployer.yml'])
46
46
  expect(green_stack).to be_deleted
@@ -26,7 +26,7 @@ describe 'Kill Inactive' do
26
26
  allow(CfDeployer::Stack).to receive(:new).with('cf-deployer-sample-cname-swap-test-web-G', 'web', anything) { green_stack }
27
27
  dns_driver = double('route53 driver')
28
28
  allow(CfDeployer::Driver::Route53).to receive(:new) { dns_driver }
29
- allow(dns_driver).to receive(:find_alias_target).with('zhao.com', 'test1.zhao.com'){ 'BLUE-elb.aws.amazon.com' }
29
+ allow(dns_driver).to receive(:find_alias_target).with('aws-dev.manheim.com', 'cf-deployer-test.aws-dev.manheim.com'){ 'BLUE-elb.aws.amazon.com' }
30
30
 
31
31
  CfDeployer::CLI.start(['kill_inactive', 'test', 'web', '-f', 'samples/cname-swap/cf_deployer.yml'])
32
32
  expect(green_stack).to be_deleted
@@ -57,6 +57,13 @@ describe 'Autoscaling group driver' do
57
57
  expect(@driver.send(:healthy_instance_count)).to eql 4
58
58
  end
59
59
 
60
+ it 'health check should be resilient against intermittent errors' do
61
+ instance5 = double('instance5')
62
+ expect(instance5).to receive(:health_status).and_raise(StandardError)
63
+ allow(group).to receive(:auto_scaling_instances){ [ instance5 ] }
64
+ expect(@driver.send(:healthy_instance_count)).to eql -1
65
+ end
66
+
60
67
  context 'when an elb is associated with the auto scaling group' do
61
68
  it 'should not include instances that are HEALTHY but not associated with the elb' do
62
69
  instance_collection = double('instance_collection', :health => [{:instance => ec2_instance1, :state => 'InService'}])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cf_deployer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jame Brechtel
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-03-12 00:00:00.000000000 Z
14
+ date: 2015-07-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: aws-sdk
@@ -83,6 +83,62 @@ dependencies:
83
83
  - - '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
+ - !ruby/object:Gem::Dependency
87
+ name: yard
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: 0.8.7.6
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: 0.8.7.6
100
+ - !ruby/object:Gem::Dependency
101
+ name: pry
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ version: 0.10.1
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: 0.10.1
114
+ - !ruby/object:Gem::Dependency
115
+ name: rspec
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - '='
119
+ - !ruby/object:Gem::Version
120
+ version: 2.14.1
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - '='
126
+ - !ruby/object:Gem::Version
127
+ version: 2.14.1
128
+ - !ruby/object:Gem::Dependency
129
+ name: rake
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: 10.3.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 10.3.0
86
142
  description: For automatic blue green deployment flow on CloudFormation.
87
143
  email:
88
144
  - jbrechtel@gmail.com
@@ -99,7 +155,6 @@ files:
99
155
  - DETAILS.md
100
156
  - FAQ.md
101
157
  - Gemfile
102
- - Gemfile.lock
103
158
  - LICENSE
104
159
  - QUICKSTART.md
105
160
  - README.md
data/Gemfile.lock DELETED
@@ -1,54 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cf_deployer (1.3.6)
5
- aws-sdk (= 1.44.0)
6
- diffy
7
- log4r
8
- rainbow
9
- thor
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- aws-sdk (1.44.0)
15
- json (~> 1.4)
16
- nokogiri (>= 1.4.4)
17
- coderay (1.1.0)
18
- diff-lcs (1.2.5)
19
- diffy (3.0.6)
20
- json (1.8.2)
21
- log4r (1.1.10)
22
- method_source (0.8.2)
23
- mini_portile (0.6.2)
24
- nokogiri (1.6.6.2)
25
- mini_portile (~> 0.6.0)
26
- pry (0.9.12.6)
27
- coderay (~> 1.0)
28
- method_source (~> 0.8)
29
- slop (~> 3.4)
30
- rainbow (2.0.0)
31
- rake (10.3.0)
32
- rspec (2.14.1)
33
- rspec-core (~> 2.14.0)
34
- rspec-expectations (~> 2.14.0)
35
- rspec-mocks (~> 2.14.0)
36
- rspec-core (2.14.8)
37
- rspec-expectations (2.14.5)
38
- diff-lcs (>= 1.1.3, < 2.0)
39
- rspec-mocks (2.14.6)
40
- slop (3.5.0)
41
- thor (0.19.1)
42
- yard (0.8.7.4)
43
-
44
- PLATFORMS
45
- ruby
46
-
47
- DEPENDENCIES
48
- cf_deployer!
49
- diffy
50
- pry
51
- rainbow
52
- rake
53
- rspec
54
- yard