Skip to content

Commit 5bebdeb

Browse files
authored
[#180098892] failsafe for same color switch (#2)
1 parent 410411c commit 5bebdeb

2 files changed

Lines changed: 18 additions & 12 deletions

File tree

bin/blue_green_switch

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ end
2626
tg = AWSClient.elbv2.describe_target_groups.target_groups.find { |x| x.target_group_name == tg_name }
2727
targets = AWSClient.elbv2.describe_target_health(target_group_arn: tg.target_group_arn)
2828
.target_health_descriptions.map(&:target)
29+
targets_port = targets.map(&:port).uniq.first
2930

3031
new_targets = []
3132
targets.map(&:id).each do |i|
@@ -48,17 +49,22 @@ AWSClient.elbv2.wait_until(
4849
)
4950

5051
puts "\n#{color.capitalize} target in service"
51-
puts "De-registering an old one"
5252

53-
AWSClient.elbv2.deregister_targets({
54-
target_group_arn: tg.target_group_arn,
55-
targets: targets
56-
})
53+
if targets_port == color_port.to_i
54+
warn "WARNING: Currently active and new colors are the same. No changes performed!"
55+
else
56+
puts "De-registering an old one"
5757

58-
AWSClient.elbv2.wait_until(
59-
:target_deregistered,
60-
target_group_arn: tg.target_group_arn,
61-
targets: targets
62-
)
58+
AWSClient.elbv2.deregister_targets({
59+
target_group_arn: tg.target_group_arn,
60+
targets: targets
61+
})
62+
63+
AWSClient.elbv2.wait_until(
64+
:target_deregistered,
65+
target_group_arn: tg.target_group_arn,
66+
targets: targets
67+
)
68+
end
6369

6470
puts "\nBlue-green switch completed"

deploy-tools.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Gem::Specification.new do |s|
22
s.name = 'deploy-tools'
3-
s.version = '0.1.0'
4-
s.date = '2022-01-27'
3+
s.version = '0.1.1'
4+
s.date = '2022-02-01'
55
s.summary = "Deploy tools"
66
s.description = "A set of script used for deployment"
77
s.authors = ["Tony Nyurkin", "Serhii Voronoi"]

0 commit comments

Comments
 (0)