ecs_helper 0.0.8 → 0.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69c2a9f0e010f46fd746986748e14f9a08ee5a0255a2779b7ea453d8dc47c685
4
- data.tar.gz: b59a0b7bd4a045834a741dd34586dd87a8eec88c84fb11d63daeba3cfc5bbe8a
3
+ metadata.gz: abb3dcfdd4e42b2bf86e57422c59ceda2458f359e557cd0f782385c3e673ecf1
4
+ data.tar.gz: d036e9dbfac6b04133e2667f13e897b1e43cbad438d586904e53bb26b9536eee
5
5
  SHA512:
6
- metadata.gz: 65f11ad6c8120a872900dbc61b91d08ad66e9b999931f298760de9baf0639d0a691bcd5bc7c37be095d94d7ed18a5fb5c34a205b8e22dd117f43f12b6239ced3
7
- data.tar.gz: 20126689d683994f8ade23d02de2f81a25406b86ace18890be6f013c8bc64a467de567e9ccb23f3cf1fbf31ac3bec754400913ca23faad623fe1559495f7aecf
6
+ metadata.gz: 8d4df5b95e14fce83d28822904a4822bc6f8074cd7895b950a18ac68675790e8d998b0c9fa22b985430b1a5684b026b63c1caa771263025517d5272d7e54837c
7
+ data.tar.gz: 26dd182dcb2b0bc3d437acb41d3c89f2513b6ec4944c28a971244fcce3bece4efb63261591aadd31a5c4088557cc440e5ccc699cc1e014598e3424db427fa7ef
@@ -2,7 +2,7 @@ require 'terrapin'
2
2
 
3
3
  class ECSHelper::Command::Deploy < ECSHelper::Command::Base
4
4
  attr_accessor :repositories, :task_definition, :new_task_definition, :service
5
- TIMEOUT = 300
5
+ DEFAULT_TIMEOUT = 300
6
6
  STEP = 5
7
7
 
8
8
  def cmd_option_parser
@@ -12,20 +12,23 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
12
12
  opts.on("-p VALUE", "--project VALUE", "Set project name, if not specified will look at ENV['PROJECT'], will be used to detect cluster") { |p| options[:project] = processEqual(p) }
13
13
  opts.on("-a VALUE", "--application VALUE", "Set application name, if not specified will look at ENV['APPLICATION'], will be used to detect service and task definition") { |a| options[:application] = processEqual(a) }
14
14
  opts.on("-e VALUE", "--environment VALUE", "Set environment, if not specified will look at ENV['ENVIRONMENT'], it there is empty will try to detect based on the branch") { |e| options[:environment] = processEqual(e) }
15
- opts.on("-t VALUE", "--tag VALUE", "Set tag which will be applied to all containers in the task if tag is present in the repo") { |t| options[:tag] = processEqual(t) }
15
+ opts.on("-v VALUE", "--version VALUE", "Set version which will be applied to all containers in the task if tag is present in the repo") { |t| options[:version] = processEqual(t) }
16
16
  opts.on("-c VALUE", "--cluster VALUE", "Set cluster name, could be autodetected if project and environment are specified") { |c| options[:cluster] = processEqual(c) }
17
17
  opts.on("-s VALUE", "--service VALUE", "Set service, could be autodetected if application and environment are specified") { |s| options[:service] = processEqual(s) }
18
+ opts.on("-t VALUE", "--timeout VALUE", "Set timeout how long to wait until deployment finished") { |t| options[:timeout] = processEqual(t) }
18
19
  end
19
20
  [parser, options]
20
21
  end
21
22
 
23
+ def timeout
24
+
22
25
  def run
23
26
  log("Command", type)
24
27
  log("Options", options)
25
28
  log("Environment", environment)
26
29
  log("Cluster", cluster_arn)
27
30
  log("Service", service_arn)
28
- log("Tag", tag)
31
+ log("Version", version)
29
32
  log("Service task definition", task_definition_arn)
30
33
  log("Containers", pretty_container_definitions)
31
34
  log("New task definition", new_task_definition.task_definition_arn)
@@ -37,7 +40,7 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
37
40
  def wait_for_deployment(time = 0)
38
41
  service = helper.client.describe_service(cluster_arn, service_arn)
39
42
  return true if service.deployments.count == 1
40
- error("Deployment timeout (#{TIMEOUT})") if time > TIMEOUT
43
+ error("Deployment timeout (#{timeout})") if time > timeout
41
44
  sleep STEP
42
45
  wait_for_deployment(time + STEP)
43
46
  end
@@ -56,8 +59,12 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
56
59
  helper.current_service
57
60
  end
58
61
 
59
- def tag
60
- options[:tag] || helper.version
62
+ def version
63
+ options[:version] || helper.version
64
+ end
65
+
66
+ def timeout
67
+ options[:timeout] || DEFAULT_TIMEOUT
61
68
  end
62
69
 
63
70
  def service
@@ -80,8 +87,8 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
80
87
  @repositories ||= client.private_repositories
81
88
  end
82
89
 
83
- def tag_image(repo)
84
- client.describe_images({repository_name: repo.repository_name, image_ids: [image_tag: tag]})
90
+ def version_image(repo)
91
+ client.describe_images({repository_name: repo.repository_name, image_ids: [image_tag: version]})
85
92
  rescue
86
93
  nil
87
94
  end
@@ -99,7 +106,7 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
99
106
  def container_definition_to_ecr(cd)
100
107
  repo = repo_for(cd.name)
101
108
  is_ecr = cd.image.include?(ecr_base)
102
- image = repo && tag_image(repo)
109
+ image = repo && version_image(repo)
103
110
  should_update = is_ecr && repo && image
104
111
  [repo, is_ecr, image, should_update]
105
112
  end
@@ -107,7 +114,7 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
107
114
  def new_container_definitions
108
115
  container_definitions.map do |cd|
109
116
  repo, is_ecr, image, should_be_updated = container_definition_to_ecr(cd)
110
- cd.image = "#{repo.repository_uri}:#{tag}" if should_be_updated
117
+ cd.image = "#{repo.repository_uri}:#{version}" if should_be_updated
111
118
  cd.to_hash
112
119
  end
113
120
  end
@@ -120,7 +127,7 @@ class ECSHelper::Command::Deploy < ECSHelper::Command::Base
120
127
  cd.image,
121
128
  is_ecr ? "ECR image" : "Not a ECR image",
122
129
  repo ? "Repo #{repo.repository_name}" : "Repo not found",
123
- image ? "Image tag #{tag}" : "Image tag #{tag} not found",
130
+ image ? "Image version #{version}" : "Image version #{version} not found",
124
131
  should_be_updated ? "Will be updated" : "Not applicable"
125
132
  ].join(' | ')
126
133
  end.join("\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecs_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Petrov