ecs_deployer 0.1.12 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -2
- data/README.md +11 -2
- data/lib/ecs_deployer/cli.rb +16 -11
- data/lib/ecs_deployer/client.rb +9 -10
- data/lib/ecs_deployer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dbede2e477b7494c7ce86d997b1bc63760be467
|
4
|
+
data.tar.gz: 09ab13c573ae1fc4efb73daef2be2e85fb356fe7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1ae2cc0e11b1ee2909a771d240bb27b8e3b31ac49beeb8860738709df4b319a600413910c6bd87acdf81c88e6249db5c771cc217238ef6b26727be80e446383
|
7
|
+
data.tar.gz: 6c2fb378ca31391072450169588915f8ad5fe10c936db13a633b936c9395d763940412abe15ae7a88a120c2501baed234bb4d3a7cea0e01b351d2bb3553375e5
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
AllCops:
|
2
2
|
Exclude:
|
3
|
-
|
3
|
+
- 'tmp/**/*'
|
4
|
+
Style/BlockComments:
|
5
|
+
Enabled: false
|
4
6
|
Style/Documentation:
|
5
7
|
Enabled: false
|
6
8
|
Style/ExtraSpacing:
|
@@ -8,7 +10,7 @@ Style/ExtraSpacing:
|
|
8
10
|
Style/FrozenStringLiteralComment:
|
9
11
|
Enabled: false
|
10
12
|
Metrics/AbcSize:
|
11
|
-
Max:
|
13
|
+
Max: 64
|
12
14
|
Metrics/BlockLength:
|
13
15
|
Enabled: false
|
14
16
|
Metrics/ClassLength:
|
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# EcsDeployer
|
2
2
|
|
3
|
+
[![CircleCI](https://circleci.com/gh/naomichi-y/ecs_deployer/tree/master.svg?style=svg)](https://circleci.com/gh/naomichi-y/ecs_deployer/tree/master)
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/ecs_deployer.svg)](https://badge.fury.io/rb/ecs_deployer)
|
5
|
+
|
6
|
+
## Description
|
7
|
+
|
3
8
|
This package provides service deployment function of ECS.
|
4
9
|
|
5
10
|
## Installation
|
@@ -12,11 +17,15 @@ gem 'ecs_deployer'
|
|
12
17
|
|
13
18
|
And then execute:
|
14
19
|
|
15
|
-
|
20
|
+
```
|
21
|
+
$ bundle
|
22
|
+
```
|
16
23
|
|
17
24
|
Or install it yourself as:
|
18
25
|
|
19
|
-
|
26
|
+
```
|
27
|
+
$ gem install ecs_deployer
|
28
|
+
```
|
20
29
|
|
21
30
|
## Task definition
|
22
31
|
|
data/lib/ecs_deployer/cli.rb
CHANGED
@@ -5,14 +5,19 @@ module EcsDeployer
|
|
5
5
|
class_option :profile, type: :string
|
6
6
|
class_option :region, type: :string
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
no_commands do
|
9
|
+
def prepare
|
10
|
+
aws_options = {}
|
11
|
+
aws_options[:profile] = options[:profile] if options[:profile]
|
12
|
+
aws_options[:region] = options[:region] if options[:region]
|
13
|
+
|
14
|
+
@deployer = EcsDeployer::Client.new(aws_options)
|
15
|
+
end
|
16
|
+
|
17
|
+
def invoke_command(command, *args)
|
18
|
+
prepare
|
19
|
+
super
|
20
|
+
end
|
16
21
|
end
|
17
22
|
|
18
23
|
desc 'task_register', 'Create new task definition'
|
@@ -28,13 +33,13 @@ module EcsDeployer
|
|
28
33
|
option :cluster, required: true
|
29
34
|
option :service, required: true
|
30
35
|
option :wait, type: :boolean, default: true
|
31
|
-
option :timeout, type: :numeric, default:
|
36
|
+
option :timeout, type: :numeric, default: 600
|
32
37
|
def update_service
|
38
|
+
@deployer.timeout = options[:timeout]
|
33
39
|
result = @deployer.update_service(
|
34
40
|
options[:cluster],
|
35
41
|
options[:service],
|
36
|
-
options[:wait]
|
37
|
-
options[:timeout]
|
42
|
+
options[:wait]
|
38
43
|
)
|
39
44
|
|
40
45
|
puts "Update service: #{result}"
|
data/lib/ecs_deployer/client.rb
CHANGED
@@ -7,11 +7,10 @@ require 'base64'
|
|
7
7
|
module EcsDeployer
|
8
8
|
class Client
|
9
9
|
LOG_SEPARATOR = '-' * 96
|
10
|
-
PAULING_INTERVAL = 20
|
11
|
-
DEPLOY_TIMEOUT = 600
|
12
10
|
ENCRYPT_PATTERN = /^\${(.+)}$/
|
13
11
|
|
14
12
|
attr_reader :cli
|
13
|
+
attr_accessor :timeout, :pauling_interval
|
15
14
|
|
16
15
|
# @param [Hash] aws_options
|
17
16
|
# @option aws_options [String] :profile
|
@@ -21,6 +20,8 @@ module EcsDeployer
|
|
21
20
|
@command = RuntimeCommand::Builder.new
|
22
21
|
@cli = Aws::ECS::Client.new(aws_options)
|
23
22
|
@kms = Aws::KMS::Client.new(aws_options)
|
23
|
+
@timeout = 600
|
24
|
+
@pauling_interval = 20
|
24
25
|
end
|
25
26
|
|
26
27
|
# @param [String] mater_key
|
@@ -100,9 +101,8 @@ module EcsDeployer
|
|
100
101
|
|
101
102
|
# @param [String] cluster
|
102
103
|
# @param [String] service
|
103
|
-
# @param [Fixnum] timeout
|
104
104
|
# @return [String]
|
105
|
-
def update_service(cluster, service, wait = true
|
105
|
+
def update_service(cluster, service, wait = true)
|
106
106
|
register_clone_task(cluster, service) if @new_task_definition_arn.nil?
|
107
107
|
|
108
108
|
result = @cli.update_service(
|
@@ -110,7 +110,7 @@ module EcsDeployer
|
|
110
110
|
service: service,
|
111
111
|
task_definition: @family + ':' + @revision.to_s
|
112
112
|
)
|
113
|
-
wait_for_deploy(cluster, service
|
113
|
+
wait_for_deploy(cluster, service) if wait
|
114
114
|
result.service.service_arn
|
115
115
|
end
|
116
116
|
|
@@ -184,8 +184,7 @@ module EcsDeployer
|
|
184
184
|
|
185
185
|
# @param [String] cluster
|
186
186
|
# @param [String] service
|
187
|
-
|
188
|
-
def wait_for_deploy(cluster, service, timeout)
|
187
|
+
def wait_for_deploy(cluster, service)
|
189
188
|
service_status = service_status(cluster, service)
|
190
189
|
raise TaskDesiredError, 'Task desired by service is 0.' if service_status[:desired_count].zero?
|
191
190
|
|
@@ -193,8 +192,8 @@ module EcsDeployer
|
|
193
192
|
@command.puts 'Start deploing...'
|
194
193
|
|
195
194
|
loop do
|
196
|
-
sleep(
|
197
|
-
wait_time +=
|
195
|
+
sleep(@pauling_interval)
|
196
|
+
wait_time += @pauling_interval
|
198
197
|
result = deploy_status(cluster, service)
|
199
198
|
|
200
199
|
if result[:new_running_count] == result[:current_running_count]
|
@@ -211,7 +210,7 @@ module EcsDeployer
|
|
211
210
|
@command.puts LOG_SEPARATOR
|
212
211
|
@command.puts 'You can stop process with Ctrl+C. Deployment will continue.'
|
213
212
|
|
214
|
-
if wait_time > timeout
|
213
|
+
if wait_time > @timeout
|
215
214
|
@command.puts "New task definition: #{@new_task_definition_arn}"
|
216
215
|
raise DeployTimeoutError, 'Service is being updating, but process is timed out.'
|
217
216
|
end
|
data/lib/ecs_deployer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecs_deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- naomichi-y
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: runtime_command
|