hako 0.17.0 → 0.17.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hako/schedulers/ecs.rb +3 -0
- data/lib/hako/schedulers/ecs_autoscaling.rb +25 -1
- data/lib/hako/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a1f4be2a7a0950001e3c6dbcbb4f76e88460b7b
|
4
|
+
data.tar.gz: d43f1b995730e81462c597377d03a7ccb3ce9e6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1597c0176b534aec392c471f8aa51eb6eee9fcd608801a6e2f2d5ff68b96c36bf757d5685483b1faa010cda23cb229fe3fa89549da2a7eff59cacb692c1a6650
|
7
|
+
data.tar.gz: ddcc12d26dd752be52164fb862f410843fd21ab0ed03fa6431486fbe36805fd7ea0a989f075081cd65f732afc440b1afc2ed3f35afd5dde60d82ce6aed6bbfaf
|
data/lib/hako/schedulers/ecs.rb
CHANGED
@@ -211,6 +211,9 @@ module Hako
|
|
211
211
|
ecs_client.delete_service(cluster: @cluster, service: @app_id)
|
212
212
|
Hako.logger.info "#{service.service_arn} is deleted"
|
213
213
|
end
|
214
|
+
if @autoscaling
|
215
|
+
@autoscaling.remove(service)
|
216
|
+
end
|
214
217
|
else
|
215
218
|
puts "Service #{@app_id} doesn't exist"
|
216
219
|
end
|
@@ -22,7 +22,7 @@ module Hako
|
|
22
22
|
# @param [Aws::ECS::Types::Service] service
|
23
23
|
# @return [nil]
|
24
24
|
def apply(service)
|
25
|
-
resource_id =
|
25
|
+
resource_id = service_resource_id(service)
|
26
26
|
service_namespace = 'ecs'
|
27
27
|
scalable_dimension = 'ecs:service:DesiredCount'
|
28
28
|
|
@@ -77,6 +77,24 @@ module Hako
|
|
77
77
|
nil
|
78
78
|
end
|
79
79
|
|
80
|
+
# @param [Aws::ECS::Types::Service] service
|
81
|
+
# @return [nil]
|
82
|
+
def remove(service)
|
83
|
+
resource_id = service_resource_id(service)
|
84
|
+
service_namespace = 'ecs'
|
85
|
+
scalable_dimension = 'ecs:service:DesiredCount'
|
86
|
+
|
87
|
+
Hako.logger.info("Deregister scalable target #{resource_id} and its policies")
|
88
|
+
unless @dry_run
|
89
|
+
begin
|
90
|
+
autoscaling_client.deregister_scalable_target(service_namespace: service_namespace, resource_id: resource_id, scalable_dimension: scalable_dimension)
|
91
|
+
rescue Aws::ApplicationAutoScaling::Errors::ObjectNotFoundException => e
|
92
|
+
Hako.logger.warn(e)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
nil
|
96
|
+
end
|
97
|
+
|
80
98
|
private
|
81
99
|
|
82
100
|
# @param [Hash] options
|
@@ -96,6 +114,12 @@ module Hako
|
|
96
114
|
@cw_client ||= Aws::CloudWatch::Client.new
|
97
115
|
end
|
98
116
|
|
117
|
+
# @param [Aws::ECS::Types::Service] service
|
118
|
+
# @return [String]
|
119
|
+
def service_resource_id(service)
|
120
|
+
"service/#{service.cluster_arn.slice(%r{[^/]+\z}, 0)}/#{service.service_name}"
|
121
|
+
end
|
122
|
+
|
99
123
|
class Policy
|
100
124
|
attr_reader :alarms, :cooldown, :adjustment_type, :scaling_adjustment, :metric_interval_lower_bound, :metric_interval_upper_bound, :metric_aggregation_type
|
101
125
|
|
data/lib/hako/version.rb
CHANGED