hako 2.3.1 → 2.4.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/CHANGELOG.md +10 -1
- data/lib/hako/container.rb +2 -0
- data/lib/hako/schedulers/ecs.rb +15 -3
- data/lib/hako/schedulers/ecs_definition_comparator.rb +2 -0
- data/lib/hako/schedulers/ecs_elb_v2.rb +17 -0
- data/lib/hako/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abb1bf796a54d7417e7f17bc3ff04a9fee504b4a7ad93a2ef40a7d3e8e12aa24
|
4
|
+
data.tar.gz: 5c00e175b2e6e4868923966cd85193a56784f8863c90c0a36bd077ad538fd0a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2ddc3d4a5b056fd2a2bfa2ac4bc81149ede6ef93310b5d1575c46e40faf7ca1c635ec20441fac1739d4d1212e1e002f4d88d0b390f7f255c3997ccecc8f51d6
|
7
|
+
data.tar.gz: 81c559831ad9fbd2f46ae4e7596b92677c76e0bbe103c6d767d9745033409499854501254ddab16a14e8e223715067245dc8f1f1b9ebf820d873c07e89565a7c
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
+
# 2.4.0 (2018-11-13)
|
2
|
+
## New features
|
3
|
+
- Support `readonly_root_filesystem` parameter
|
4
|
+
- Support `docker_security_options` parameter
|
5
|
+
- Support `ssl_policy` option in `elb_v2`
|
6
|
+
|
7
|
+
## Bug fixes
|
8
|
+
- Skip updating `desired_count` before removing service using daemon scheduling strategy
|
9
|
+
|
1
10
|
# 2.3.1 (2018-09-26)
|
2
11
|
## Changes
|
3
12
|
- Change show-definition output from YAML to JSON
|
4
|
-
- The show-definition output is still
|
13
|
+
- The show-definition output is still parsable as YAML
|
5
14
|
|
6
15
|
## Bug fixes
|
7
16
|
- Set `deployment_configuration` to nil when absent
|
data/lib/hako/container.rb
CHANGED
data/lib/hako/schedulers/ecs.rb
CHANGED
@@ -289,10 +289,14 @@ module Hako
|
|
289
289
|
service = describe_service
|
290
290
|
if service
|
291
291
|
if @dry_run
|
292
|
-
|
292
|
+
unless service.scheduling_strategy == 'DAEMON'
|
293
|
+
Hako.logger.info "ecs_client.update_service(cluster: #{service.cluster_arn}, service: #{service.service_arn}, desired_count: 0)"
|
294
|
+
end
|
293
295
|
Hako.logger.info "ecs_client.delete_service(cluster: #{service.cluster_arn}, service: #{service.service_arn})"
|
294
296
|
else
|
295
|
-
|
297
|
+
unless service.scheduling_strategy == 'DAEMON'
|
298
|
+
ecs_client.update_service(cluster: service.cluster_arn, service: service.service_arn, desired_count: 0)
|
299
|
+
end
|
296
300
|
ecs_client.delete_service(cluster: service.cluster_arn, service: service.service_arn)
|
297
301
|
Hako.logger.info "#{service.service_arn} is deleted"
|
298
302
|
end
|
@@ -600,6 +604,8 @@ module Hako
|
|
600
604
|
health_check: container.health_check,
|
601
605
|
ulimits: container.ulimits,
|
602
606
|
extra_hosts: container.extra_hosts,
|
607
|
+
readonly_root_filesystem: container.readonly_root_filesystem,
|
608
|
+
docker_security_options: container.docker_security_options,
|
603
609
|
}
|
604
610
|
end
|
605
611
|
|
@@ -918,7 +924,7 @@ module Hako
|
|
918
924
|
end
|
919
925
|
end
|
920
926
|
|
921
|
-
TASK_ID_RE = /\(task ([\h-]+)\)\.\z
|
927
|
+
TASK_ID_RE = /\(task ([\h-]+)\)\.\z/.freeze
|
922
928
|
# @param [String] message
|
923
929
|
# @return [String, nil]
|
924
930
|
def extract_task_id(message)
|
@@ -1175,6 +1181,12 @@ module Hako
|
|
1175
1181
|
if definition[:user]
|
1176
1182
|
cmd << '--user' << definition[:user]
|
1177
1183
|
end
|
1184
|
+
if definition[:readonly_root_filesystem]
|
1185
|
+
cmd << '--read-only'
|
1186
|
+
end
|
1187
|
+
(definition[:docker_security_options] || []).each do |docker_security_option|
|
1188
|
+
cmd << '--security-opt' << docker_security_option
|
1189
|
+
end
|
1178
1190
|
|
1179
1191
|
cmd << "\\\n "
|
1180
1192
|
definition.fetch(:environment).each do |env|
|
@@ -39,6 +39,8 @@ module Hako
|
|
39
39
|
struct.member(:ulimits, Schema::Nullable.new(ulimits_schema))
|
40
40
|
struct.member(:extra_hosts, Schema::Nullable.new(extra_hosts_schema))
|
41
41
|
struct.member(:linux_parameters, Schema::Nullable.new(linux_parameters_schema))
|
42
|
+
struct.member(:readonly_root_filesystem, Schema::Nullable.new(Schema::Boolean.new))
|
43
|
+
struct.member(:docker_security_options, Schema::Nullable.new(Schema::UnorderedArray.new(Schema::String.new)))
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
@@ -108,6 +108,7 @@ module Hako
|
|
108
108
|
load_balancer_arn: load_balancer.load_balancer_arn,
|
109
109
|
protocol: l.fetch('protocol'),
|
110
110
|
port: l.fetch('port'),
|
111
|
+
ssl_policy: l['ssl_policy'],
|
111
112
|
default_actions: [{ type: 'forward', target_group_arn: target_group.target_group_arn }],
|
112
113
|
}
|
113
114
|
certificate_arn = l.fetch('certificate_arn', nil)
|
@@ -141,6 +142,22 @@ module Hako
|
|
141
142
|
end
|
142
143
|
end
|
143
144
|
|
145
|
+
new_listeners = @elb_v2_config.fetch('listeners')
|
146
|
+
if load_balancer
|
147
|
+
current_listeners = elb_client.describe_listeners(load_balancer_arn: load_balancer.load_balancer_arn).listeners
|
148
|
+
new_listeners.each do |new_listener|
|
149
|
+
current_listener = current_listeners.find { |l| l.port == new_listener['port'] }
|
150
|
+
if current_listener && new_listener['ssl_policy'] && new_listener['ssl_policy'] != current_listener.ssl_policy
|
151
|
+
if @dry_run
|
152
|
+
Hako.logger.info("elb_client.modify_listener(listener_arn: #{current_listener.listener_arn}, ssl_policy: #{new_listener['ssl_policy']}) (dry-run)")
|
153
|
+
else
|
154
|
+
Hako.logger.info("Updating ELBv2 listener #{new_listener['port']} ssl_policy to #{new_listener['ssl_policy']}")
|
155
|
+
elb_client.modify_listener(listener_arn: current_listener.listener_arn, ssl_policy: new_listener['ssl_policy'])
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
144
161
|
if @elb_v2_config.key?('load_balancer_attributes')
|
145
162
|
attributes = @elb_v2_config.fetch('load_balancer_attributes').map { |key, value| { key: key, value: value } }
|
146
163
|
if @dry_run
|
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: 2.
|
4
|
+
version: 2.4.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: 2018-
|
11
|
+
date: 2018-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-applicationautoscaling
|