hako 0.24.0 → 0.25.0
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 +4 -4
- data/hako.gemspec +1 -1
- data/lib/hako/schedulers/ecs.rb +31 -0
- data/lib/hako/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0a353a740fe7ea58839d67b5f2489883756b8120
|
|
4
|
+
data.tar.gz: 1b0784408a192b881706fb297cc61235a9012e00
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2eb101b2de3a386269b23363542241fc7a675848147c2c2e121e49cd4b04b9e91c72a0838273237e44fb0aa7ec8d8da7faf55b9ec5104cbb902547cbad4f3791
|
|
7
|
+
data.tar.gz: 13e7e80290763e4a2a2f3855816f26716061c39e19ec5e93fe5816eca90748a6ff9efeab8fbbac96108ed9983389f1b7db8c656dca94da14f64a509304116f95
|
data/hako.gemspec
CHANGED
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.require_paths = ['lib']
|
|
20
20
|
spec.required_ruby_version = '>= 2.3.0'
|
|
21
21
|
|
|
22
|
-
spec.add_dependency 'aws-sdk', '>= 2.
|
|
22
|
+
spec.add_dependency 'aws-sdk', '>= 2.6.43'
|
|
23
23
|
|
|
24
24
|
spec.add_development_dependency 'bundler'
|
|
25
25
|
spec.add_development_dependency 'rake'
|
data/lib/hako/schedulers/ecs.rb
CHANGED
|
@@ -41,6 +41,8 @@ module Hako
|
|
|
41
41
|
%i[maximum_percent minimum_healthy_percent].each do |key|
|
|
42
42
|
@deployment_configuration[key] = options.dig('deployment_configuration', key.to_s)
|
|
43
43
|
end
|
|
44
|
+
@placement_constraints = options.fetch('placement_constraints', [])
|
|
45
|
+
@placement_strategy = options.fetch('placement_strategy', [])
|
|
44
46
|
|
|
45
47
|
@started_at = nil
|
|
46
48
|
@container_instance_arn = nil
|
|
@@ -597,6 +599,7 @@ module Hako
|
|
|
597
599
|
# Keep current desired_count if autoscaling is enabled
|
|
598
600
|
params[:desired_count] = current_service.desired_count
|
|
599
601
|
end
|
|
602
|
+
warn_placement_policy_change(current_service)
|
|
600
603
|
if service_changed?(current_service, params)
|
|
601
604
|
ecs_client.update_service(params).service
|
|
602
605
|
else
|
|
@@ -615,6 +618,8 @@ module Hako
|
|
|
615
618
|
desired_count: 0,
|
|
616
619
|
role: @role,
|
|
617
620
|
deployment_configuration: @deployment_configuration,
|
|
621
|
+
placement_constraints: @placement_constraints,
|
|
622
|
+
placement_strategy: @placement_strategy,
|
|
618
623
|
}
|
|
619
624
|
if ecs_elb_client.find_or_create_load_balancer(front_port)
|
|
620
625
|
ecs_elb_client.modify_attributes
|
|
@@ -815,6 +820,32 @@ module Hako
|
|
|
815
820
|
puts cmd.join(' ')
|
|
816
821
|
nil
|
|
817
822
|
end
|
|
823
|
+
|
|
824
|
+
# @param [Aws::ECS::Types::Service] service
|
|
825
|
+
# @return [nil]
|
|
826
|
+
def warn_placement_policy_change(service)
|
|
827
|
+
placement_constraints = service.placement_constraints.map do |c|
|
|
828
|
+
h = { 'type' => c.type }
|
|
829
|
+
unless c.expression.nil?
|
|
830
|
+
h['expression'] = c.expression
|
|
831
|
+
end
|
|
832
|
+
h
|
|
833
|
+
end
|
|
834
|
+
if @placement_constraints != placement_constraints
|
|
835
|
+
Hako.logger.warn "Ignoring updated placement_constraints in the configuration, because AWS doesn't allow updating them for now."
|
|
836
|
+
end
|
|
837
|
+
|
|
838
|
+
placement_strategy = service.placement_strategy.map do |s|
|
|
839
|
+
h = { 'type' => s.type }
|
|
840
|
+
unless s.field.nil?
|
|
841
|
+
h['field'] = s.field.downcase
|
|
842
|
+
end
|
|
843
|
+
h
|
|
844
|
+
end
|
|
845
|
+
if @placement_strategy != placement_strategy
|
|
846
|
+
Hako.logger.warn "Ignoring updated placement_strategy in the configuration, because AWS doesn't allow updating them for now."
|
|
847
|
+
end
|
|
848
|
+
end
|
|
818
849
|
end
|
|
819
850
|
end
|
|
820
851
|
end
|
data/lib/hako/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hako
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.25.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kohei Suzuki
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-02-
|
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.
|
|
19
|
+
version: 2.6.43
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 2.
|
|
26
|
+
version: 2.6.43
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|