ufo 4.3.1 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +8 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile.lock +26 -26
  5. data/README.md +1 -1
  6. data/docs/.ruby-version +1 -0
  7. data/docs/_docs/auto-completion.md +2 -3
  8. data/docs/_docs/automated-cleanup.md +2 -3
  9. data/docs/_docs/conventions.md +2 -3
  10. data/docs/_docs/customize-cloudformation.md +2 -3
  11. data/docs/_docs/ecs-network-mode.md +2 -3
  12. data/docs/_docs/faq.md +2 -3
  13. data/docs/_docs/fargate.md +1 -5
  14. data/docs/_docs/helpers.md +2 -3
  15. data/docs/_docs/install.md +2 -4
  16. data/docs/_docs/load-balancer.md +2 -3
  17. data/docs/_docs/migrations.md +2 -3
  18. data/docs/_docs/next-steps.md +2 -4
  19. data/docs/_docs/params.md +2 -4
  20. data/docs/_docs/quick-start-ec2.md +3 -4
  21. data/docs/_docs/redirection-support.md +2 -3
  22. data/docs/_docs/route53-support.md +2 -3
  23. data/docs/_docs/run-in-pieces.md +2 -3
  24. data/docs/_docs/security-groups.md +2 -3
  25. data/docs/_docs/settings-cfn.md +2 -3
  26. data/docs/_docs/settings-network.md +2 -3
  27. data/docs/_docs/settings.md +21 -24
  28. data/docs/_docs/single-task.md +2 -3
  29. data/docs/_docs/ssl-support.md +2 -3
  30. data/docs/_docs/structure.md +2 -4
  31. data/docs/_docs/stuck-cloudformation.md +2 -3
  32. data/docs/_docs/tutorial-ufo-docker-build.md +2 -4
  33. data/docs/_docs/tutorial-ufo-init.md +2 -4
  34. data/docs/_docs/tutorial-ufo-ship.md +2 -3
  35. data/docs/_docs/tutorial-ufo-ships.md +2 -3
  36. data/docs/_docs/tutorial-ufo-tasks-build.md +2 -3
  37. data/docs/_docs/tutorial.md +2 -3
  38. data/docs/_docs/ufo-current.md +2 -3
  39. data/docs/_docs/ufo-env-extra.md +2 -3
  40. data/docs/_docs/ufo-env.md +2 -3
  41. data/docs/_docs/ufo-tasks-register.md +1 -2
  42. data/docs/_docs/upgrading.md +13 -0
  43. data/docs/_docs/upgrading/upgrade4.4.md +39 -0
  44. data/docs/_docs/{upgrade4.md → upgrading/upgrade4.md} +6 -4
  45. data/docs/_docs/variables.md +2 -3
  46. data/docs/_docs/why-cloudformation.md +2 -3
  47. data/docs/_includes/prev_next.md +19 -0
  48. data/docs/_includes/subnav.html +8 -1
  49. data/docs/_reference/{ufo-upgrade-v3_3to3_4.md → ufo-upgrade-v33to34.md} +2 -2
  50. data/docs/_reference/ufo-upgrade-v43to44.md +15 -0
  51. data/docs/_reference/ufo-upgrade.md +2 -1
  52. data/docs/articles.md +2 -3
  53. data/docs/docs.md +2 -4
  54. data/docs/quick-start.md +3 -3
  55. data/lib/cfn/stack.yml +8 -8
  56. data/lib/template/.ufo/settings.yml.tt +5 -8
  57. data/lib/ufo.rb +2 -0
  58. data/lib/ufo/apps/service.rb +4 -4
  59. data/lib/ufo/base.rb +1 -2
  60. data/lib/ufo/cancel.rb +2 -2
  61. data/lib/ufo/core.rb +16 -14
  62. data/lib/ufo/destroy.rb +2 -2
  63. data/lib/ufo/ps.rb +1 -1
  64. data/lib/ufo/scale.rb +2 -2
  65. data/lib/ufo/setting.rb +16 -1
  66. data/lib/ufo/stack/context.rb +0 -1
  67. data/lib/ufo/stack/helper.rb +18 -1
  68. data/lib/ufo/upgrade.rb +8 -2
  69. data/lib/ufo/upgrade/upgrade33to34.rb +1 -0
  70. data/lib/ufo/upgrade/upgrade43to44.rb +25 -0
  71. data/lib/ufo/version.rb +1 -1
  72. data/spec/fixtures/settings.yml +3 -5
  73. data/spec/lib/setting_spec.rb +5 -0
  74. data/ufo.gemspec +1 -1
  75. metadata +13 -8
  76. data/spec/lib/core_spec.rb +0 -16
@@ -1,4 +1,4 @@
1
- Description: "Ufo ECS stack <%= @pretty_service_name %>"
1
+ Description: "Ufo ECS stack <%= @stack_name %>"
2
2
  Parameters:
3
3
  # required
4
4
  Vpc:
@@ -63,12 +63,12 @@ Resources:
63
63
  # Happens: When changing subnets for an ELB
64
64
  # Solution: Rename the ELB to force a replacement of it
65
65
  <% random = (0...3).map { (65 + rand(26)).chr }.join.downcase %>
66
- Name: <%= "#{@pretty_service_name}-#{random}" %>
66
+ Name: <%= "#{@stack_name}-#{random}" %>
67
67
  <% end -%>
68
68
  Type: <%= @elb_type %>
69
69
  Tags:
70
70
  - Key: Name
71
- Value: <%= @pretty_service_name %>
71
+ Value: <%= @stack_name %>
72
72
  <% if @elb_type == "application" -%>
73
73
  # Add additional extra security groups if parameters set
74
74
  SecurityGroups: !Split
@@ -96,14 +96,14 @@ Resources:
96
96
  VpcId: !Ref Vpc
97
97
  Tags:
98
98
  - Key: Name
99
- Value: <%= @pretty_service_name %>
99
+ Value: <%= @stack_name %>
100
100
  <% if ENV['UFO_FORCE_TARGET_GROUP'] -%>
101
101
  # When adding and removing EIPs
102
102
  # Error: TargetGroup cannot be associated with more than one load balancer
103
103
  # Solution: https://forums.aws.amazon.com/thread.jspa?threadID=254544
104
104
  Name: !Join
105
105
  - '-'
106
- - - <%= @pretty_service_name %>
106
+ - - <%= @stack_name %>
107
107
  - !Select [ 2, !Split [ '-', !GetAtt Elb.LoadBalancerName]]
108
108
  <% end -%>
109
109
  Protocol: <%= @default_target_group_protocol %>
@@ -168,7 +168,7 @@ Resources:
168
168
  CidrIp: 0.0.0.0/0
169
169
  Tags:
170
170
  - Key: Name
171
- Value: <%= @pretty_service_name %>-elb
171
+ Value: <%= @stack_name %>-elb
172
172
  <%= custom_properties(:ElbSecurityGroup) %>
173
173
  <% end -%>
174
174
 
@@ -185,7 +185,7 @@ Resources:
185
185
  - !Ref EcsDesiredCount
186
186
  TaskDefinition: !Ref EcsTaskDefinition
187
187
  <% if pretty_name? -%>
188
- ServiceName: <%= @pretty_service_name %>
188
+ ServiceName: <%= @stack_name %>
189
189
  <% end -%>
190
190
  <% if @container[:fargate] -%>
191
191
  LaunchType: FARGATE
@@ -243,7 +243,7 @@ Resources:
243
243
  Description: outbound traffic
244
244
  Tags:
245
245
  - Key: Name
246
- Value: <%= @pretty_service_name %>
246
+ Value: <%= @stack_name %>
247
247
  <%= custom_properties(:EcsSecurityGroup) %>
248
248
 
249
249
  <% if @elb_type == "application" -%>
@@ -12,17 +12,14 @@ base:
12
12
  # There are some cavaets with this. Updating properties on resources that require
13
13
  # replacment might not work. For example, adding and removing a load balancer.
14
14
  # In these cases, you must delete the entire ecs service and recreate it.
15
+ stack_naming: append_env
15
16
 
16
17
  development:
17
18
  # cluster: development
18
- # When you have AWS_PROFILE set to one of these values, ufo will switch to the desired
19
- # environment. This prevents you from switching AWS_PROFILE, forgetting to
20
- # also switch UFO_ENV, and accidentally deploying to production vs development.
21
- # aws_profiles:
22
- # - dev_profile1
23
- # - dev_profile2
19
+ # The aws_profile tightly binds UFO_ENV to AWS_PROFILE and vice-versa.
20
+ # aws_profile: dev_profile
24
21
 
25
22
  production:
26
23
  # cluster: production
27
- # aws_profiles:
28
- # - prod_profile
24
+ # The aws_profile tightly binds UFO_ENV to AWS_PROFILE and vice-versa.
25
+ # aws_profile: prod_profile
data/lib/ufo.rb CHANGED
@@ -46,3 +46,5 @@ module Ufo
46
46
 
47
47
  extend Core
48
48
  end
49
+
50
+ Ufo.set_aws_profile!
@@ -29,12 +29,12 @@ class Ufo::Apps
29
29
  end
30
30
 
31
31
  def name
32
- pretty_service_name = @service["service_name"]
33
- pretty_name = cfn_map[pretty_service_name]
32
+ actual_service_name = @service["service_name"]
33
+ pretty_name = cfn_map[actual_service_name]
34
34
  if pretty_name
35
- "#{pretty_service_name} (#{pretty_name})"
35
+ "#{actual_service_name} (#{pretty_name})"
36
36
  else
37
- pretty_service_name
37
+ actual_service_name
38
38
  end
39
39
  end
40
40
 
@@ -7,7 +7,6 @@ module Ufo
7
7
  @service = switch_current(service)
8
8
  @options = options
9
9
 
10
- @pretty_service_name = Ufo.pretty_service_name(@service)
11
10
  @cluster = @options[:cluster] || default_cluster
12
11
  @stack_name = adjust_stack_name(@cluster, @service)
13
12
  end
@@ -23,7 +22,7 @@ module Ufo
23
22
 
24
23
  def no_service_message
25
24
  <<-EOL
26
- No #{@pretty_service_name.color(:green)} found.
25
+ No #{@service.color(:green)} found.
27
26
  No CloudFormation stack named #{@stack_name} found.
28
27
  Are sure it exists?
29
28
  EOL
@@ -3,12 +3,12 @@ module Ufo
3
3
  def run
4
4
  stack = find_stack(@stack_name)
5
5
  unless stack
6
- puts "No #{@pretty_service_name} service to cancel."
6
+ puts "No #{@service} service to cancel."
7
7
  puts "No #{@stack_name} stack to cancel. Exiting"
8
8
  exit
9
9
  end
10
10
 
11
- puts "Canceling updates to #{@pretty_service_name}."
11
+ puts "Canceling updates to #{@stack_name}."
12
12
  if stack.stack_status == "CREATE_IN_PROGRESS"
13
13
  cloudformation.delete_stack(stack_name: @stack_name)
14
14
  puts "Canceling stack creation."
@@ -21,7 +21,8 @@ module Ufo
21
21
  end
22
22
 
23
23
  def env
24
- ufo_env = env_from_profile(ENV['AWS_PROFILE']) || 'development'
24
+ # 2-way binding
25
+ ufo_env = env_from_profile || 'development'
25
26
  ufo_env = ENV['UFO_ENV'] if ENV['UFO_ENV'] # highest precedence
26
27
  ufo_env
27
28
  end
@@ -35,8 +36,17 @@ module Ufo
35
36
  end
36
37
  memoize :env_extra
37
38
 
38
- def pretty_service_name(service)
39
- [service, Ufo.env_extra].reject {|x| x==''}.compact.join('-')
39
+ # Overrides AWS_PROFILE based on the Ufo.env if set in configs/settings.yml
40
+ # 2-way binding.
41
+ def set_aws_profile!
42
+ return if ENV['TEST']
43
+ return unless File.exist?("#{Ufo.root}/.ufo/settings.yml") # for rake docs
44
+ return unless settings # Only load if within Ufo project and there's a settings.yml
45
+ data = settings[Ufo.env] || {}
46
+ if data["aws_profile"]
47
+ puts "Using AWS_PROFILE=#{data["aws_profile"]} from UFO_ENV=#{Ufo.env} in config/settings.yml"
48
+ ENV['AWS_PROFILE'] = data["aws_profile"]
49
+ end
40
50
  end
41
51
 
42
52
  def settings
@@ -58,17 +68,9 @@ module Ufo
58
68
  end
59
69
  end
60
70
 
61
- private
62
- # Do not use the Setting class to load the profile because it can cause an
63
- # infinite loop then if we decide to use Ufo.env from within settings class.
64
- def env_from_profile(aws_profile)
65
- data = YAML.load_file("#{Ufo.root}/.ufo/settings.yml")
66
- env = data.find do |_env, setting|
67
- setting ||= {}
68
- profiles = setting['aws_profiles']
69
- profiles && profiles.include?(aws_profile)
70
- end
71
- env.first if env
71
+ private
72
+ def env_from_profile
73
+ Ufo::Setting.new.ufo_env
72
74
  end
73
75
  end
74
76
  end
@@ -13,7 +13,7 @@ module Ufo
13
13
  end
14
14
 
15
15
  if stack.stack_status =~ /_IN_PROGRESS$/
16
- puts "Cannot destroy service #{@pretty_service_name.color(:green)}"
16
+ puts "Cannot destroy service #{@service.color(:green)}"
17
17
  puts "Cannot delete stack #{@stack_name.color(:green)} in this state: #{stack.stack_status.color(:green)}"
18
18
  puts "If the stack is taking a long time, you can cancel the current operation with:"
19
19
  puts " ufo cancel #{@service}"
@@ -32,7 +32,7 @@ module Ufo
32
32
 
33
33
  def are_you_sure?
34
34
  return true if @options[:sure]
35
- puts "You are about to destroy #{@pretty_service_name.color(:green)} service on the #{@cluster.color(:green)} cluster."
35
+ puts "You are about to destroy #{@service.color(:green)} service on the #{@cluster.color(:green)} cluster."
36
36
  print "Are you sure you want to do this? (y/n) "
37
37
  answer = $stdin.gets.strip
38
38
  answer =~ /^y/
@@ -31,7 +31,7 @@ module Ufo
31
31
 
32
32
  def summary
33
33
  return unless @options[:summary]
34
- puts "=> Service: #{@pretty_service_name}"
34
+ puts "=> Service: #{@service}"
35
35
  puts " Service name: #{service.service_name}"
36
36
  puts " Status: #{service.status}"
37
37
  puts " Running count: #{service.running_count}"
@@ -9,7 +9,7 @@ module Ufo
9
9
 
10
10
  def update
11
11
  unless service_exists?
12
- puts "Unable to find the #{@pretty_service_name.color(:green)} service on the #{@cluster.color(:green)} cluster."
12
+ puts "Unable to find the #{@service.color(:green)} service on the #{@cluster.color(:green)} cluster."
13
13
  puts "Are you sure you are trying to scale the right service on the right cluster?"
14
14
  exit
15
15
  end
@@ -18,7 +18,7 @@ module Ufo
18
18
  cluster: @cluster,
19
19
  desired_count: @count
20
20
  )
21
- puts "Scale #{@pretty_service_name.color(:green)} service in #{@cluster.color(:green)} cluster to #{@count}" unless @options[:mute]
21
+ puts "Scale #{@service.color(:green)} service in #{@cluster.color(:green)} cluster to #{@count}" unless @options[:mute]
22
22
  end
23
23
 
24
24
  def service_exists?
@@ -27,11 +27,26 @@ module Ufo
27
27
 
28
28
  all_envs = default.deep_merge(user.deep_merge(project))
29
29
  all_envs = merge_base(all_envs)
30
- data = all_envs[Ufo.env] || all_envs["base"] || {}
30
+ data = all_envs[ufo_env] || all_envs["base"] || {}
31
31
  data.deep_symbolize_keys
32
32
  end
33
33
  memoize :data
34
34
 
35
+ # Resovles infinite problem since Ufo.env can be determined from UFO_ENV or settings.yml files.
36
+ # When ufo is determined from settings it should not called Ufo.env since that in turn calls
37
+ # Settings.new.data which can then cause an infinite loop.
38
+ def ufo_env
39
+ settings = YAML.load_file("#{Ufo.root}/.ufo/settings.yml")
40
+ env = settings.find do |_env, section|
41
+ section ||= {}
42
+ ENV['AWS_PROFILE'] && ENV['AWS_PROFILE'] == section['aws_profile']
43
+ end
44
+
45
+ ufo_env = env.first if env
46
+ ufo_env = ENV['UFO_ENV'] if ENV['UFO_ENV'] # highest precedence
47
+ ufo_env || 'development'
48
+ end
49
+
35
50
  private
36
51
  def load_file(path)
37
52
  return Hash.new({}) unless File.exist?(path)
@@ -22,7 +22,6 @@ class Ufo::Stack
22
22
  vars = {
23
23
  cluster: @cluster,
24
24
  stack_name: @stack_name, # used in custom_properties
25
- pretty_service_name: Ufo.pretty_service_name(@service),
26
25
  container: container,
27
26
  # elb options remember that their 'state'
28
27
  create_elb: create_elb?, # helps set Ecs DependsOn
@@ -17,7 +17,24 @@ class Ufo::Stack
17
17
  end
18
18
 
19
19
  def adjust_stack_name(cluster, service)
20
- [cluster, Ufo.pretty_service_name(service)].compact.join('-')
20
+ if settings[:stack_naming] != "append_env"
21
+ puts "WARN: In ufo v4.4 the environment name gets appends to the end of the CloudFormation stack name. This means a new stack gets created. You must upgrade to using the new stack and delete the old stack manually. More info: http://ufoships.com/docs/upgrading/upgrade4.4/".color(:yellow)
22
+ puts "To get rid of this warning you can add `stack_naming: append_env` to your `.ufo/settings.yml config. New versions of ufo init does this automatically."
23
+ puts "Pausing for 20 seconds."
24
+ sleep 20
25
+ end
26
+
27
+ parts = if settings[:stack_naming] == "append_env"
28
+ [service, cluster, Ufo.env_extra]
29
+ else
30
+ # legacy, to be removed in next major version
31
+ [cluster, service, Ufo.env_extra]
32
+ end
33
+ parts.reject {|x| x==''}.compact.join('-') # stack_name
34
+ end
35
+
36
+ def cfn
37
+ Ufo::Setting::Profile.new(:cfn, settings[:cfn_profile]).data
21
38
  end
22
39
 
23
40
  def status
@@ -3,14 +3,15 @@ module Ufo
3
3
  autoload :Upgrade3, "ufo/upgrade/upgrade3"
4
4
  autoload :Upgrade33to34, "ufo/upgrade/upgrade33to34"
5
5
  autoload :Upgrade4, "ufo/upgrade/upgrade4"
6
+ autoload :Upgrade43to44, "ufo/upgrade/upgrade43to44"
6
7
 
7
8
  desc "v2to3", "Upgrade from version 2 to 3."
8
9
  def v2to3
9
10
  Upgrade3.new(options).run
10
11
  end
11
12
 
12
- desc "v3_3to3_4", "Upgrade from version 3.3 to 3.4"
13
- def v3_3to3_4
13
+ desc "v33to34", "Upgrade from version 3.3 to 3.4"
14
+ def v33to34
14
15
  Upgrade33to34.new(options).run
15
16
  end
16
17
 
@@ -28,5 +29,10 @@ module Ufo
28
29
  def v3to4
29
30
  Upgrade4.start
30
31
  end
32
+
33
+ desc "v43to44", "Upgrade from version 4.3 to 4.4"
34
+ def v43to44
35
+ Upgrade43to44.new(options).run
36
+ end
31
37
  end
32
38
  end
@@ -30,3 +30,4 @@ class Ufo::Upgrade
30
30
  end
31
31
  end
32
32
  end
33
+
@@ -0,0 +1,25 @@
1
+ require 'fileutils'
2
+ require 'yaml'
3
+
4
+ class Ufo::Upgrade
5
+ class Upgrade43to44
6
+ def initialize(options)
7
+ @options = options
8
+ end
9
+
10
+ def run
11
+ settings_path = ".ufo/settings.yml"
12
+ settings = YAML.load_file(settings_path)
13
+ if settings["base"]["stack_naming"]
14
+ puts "Detected stack_naming in the #{settings_path}. Already upgraded to v4.4"
15
+ return
16
+ end
17
+
18
+ puts "Upgrading to ufo v4.4..."
19
+ settings["base"]["stack_naming"] = "append_env"
20
+ text = YAML.dump(settings)
21
+ IO.write(settings_path, text)
22
+ puts "Updated .ufo/settings.yml"
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module Ufo
2
- VERSION = "4.3.1"
2
+ VERSION = "4.4.0"
3
3
  end
@@ -6,14 +6,12 @@ base:
6
6
  # defaults when an new ECS service is created by ufo ship
7
7
  cfn_profile: default
8
8
  network_profile: default
9
+ stack_naming: append_env # so spec doesnt pause for 20s
9
10
 
10
11
  development:
11
12
  cluster: dev
12
- aws_profiles:
13
- - dev_profile1
14
- - dev_profile2
13
+ aws_profile: dev_profile1
15
14
 
16
15
  production:
17
16
  cluster: prod
18
- aws_profiles:
19
- - prod_profile
17
+ aws_profile: prod_profile
@@ -10,4 +10,9 @@ describe Ufo::Setting do
10
10
  cluster = setting.data[:cluster]
11
11
  expect(cluster).to eq "dev"
12
12
  end
13
+
14
+ it "ufo_env" do
15
+ ufo_env = setting.ufo_env
16
+ expect(ufo_env).to eq "development"
17
+ end
13
18
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.version = Ufo::VERSION
8
8
  spec.authors = ["Tung Nguyen"]
9
9
  spec.email = ["tongueroo@gmail.com"]
10
- spec.summary = "AWS ECS Deployment Tool"
10
+ spec.summary = "AWS ECS Deploy Tool"
11
11
  spec.homepage = "http://ufoships.com"
12
12
  spec.license = "MIT"
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ufo
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.1
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-14 00:00:00.000000000 Z
11
+ date: 2019-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-cloudformation
@@ -284,6 +284,7 @@ files:
284
284
  - README.md
285
285
  - Rakefile
286
286
  - docs/.gitignore
287
+ - docs/.ruby-version
287
288
  - docs/CNAME
288
289
  - docs/Gemfile
289
290
  - docs/LICENSE
@@ -325,7 +326,9 @@ files:
325
326
  - docs/_docs/ufo-env-extra.md
326
327
  - docs/_docs/ufo-env.md
327
328
  - docs/_docs/ufo-tasks-register.md
328
- - docs/_docs/upgrade4.md
329
+ - docs/_docs/upgrading.md
330
+ - docs/_docs/upgrading/upgrade4.4.md
331
+ - docs/_docs/upgrading/upgrade4.md
329
332
  - docs/_docs/variables.md
330
333
  - docs/_docs/why-cloudformation.md
331
334
  - docs/_includes/about.html
@@ -352,6 +355,7 @@ files:
352
355
  - docs/_includes/js_disqus.html
353
356
  - docs/_includes/modals.html
354
357
  - docs/_includes/nav.html
358
+ - docs/_includes/prev_next.md
355
359
  - docs/_includes/quotes.html
356
360
  - docs/_includes/reference.md
357
361
  - docs/_includes/repo_push_access.md
@@ -395,8 +399,9 @@ files:
395
399
  - docs/_reference/ufo-tasks.md
396
400
  - docs/_reference/ufo-upgrade-help.md
397
401
  - docs/_reference/ufo-upgrade-v2to3.md
398
- - docs/_reference/ufo-upgrade-v3_3to3_4.md
402
+ - docs/_reference/ufo-upgrade-v33to34.md
399
403
  - docs/_reference/ufo-upgrade-v3to4.md
404
+ - docs/_reference/ufo-upgrade-v43to44.md
400
405
  - docs/_reference/ufo-upgrade.md
401
406
  - docs/_reference/ufo-version.md
402
407
  - docs/articles.md
@@ -546,6 +551,7 @@ files:
546
551
  - lib/ufo/upgrade/upgrade3.rb
547
552
  - lib/ufo/upgrade/upgrade33to34.rb
548
553
  - lib/ufo/upgrade/upgrade4.rb
554
+ - lib/ufo/upgrade/upgrade43to44.rb
549
555
  - lib/ufo/util.rb
550
556
  - lib/ufo/version.rb
551
557
  - spec/fixtures/apps/describe_services.json
@@ -563,7 +569,6 @@ files:
563
569
  - spec/lib/builder_spec.rb
564
570
  - spec/lib/cli_spec.rb
565
571
  - spec/lib/completion_spec.rb
566
- - spec/lib/core_spec.rb
567
572
  - spec/lib/ecr_auth_spec.rb
568
573
  - spec/lib/ecr_cleaner_spec.rb
569
574
  - spec/lib/ps_spec.rb
@@ -594,10 +599,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
594
599
  - !ruby/object:Gem::Version
595
600
  version: '0'
596
601
  requirements: []
597
- rubygems_version: 3.0.2
602
+ rubyforge_project:
603
+ rubygems_version: 2.5.2
598
604
  signing_key:
599
605
  specification_version: 4
600
- summary: AWS ECS Deployment Tool
606
+ summary: AWS ECS Deploy Tool
601
607
  test_files:
602
608
  - spec/fixtures/apps/describe_services.json
603
609
  - spec/fixtures/cfn/stack-events-complete.json
@@ -614,7 +620,6 @@ test_files:
614
620
  - spec/lib/builder_spec.rb
615
621
  - spec/lib/cli_spec.rb
616
622
  - spec/lib/completion_spec.rb
617
- - spec/lib/core_spec.rb
618
623
  - spec/lib/ecr_auth_spec.rb
619
624
  - spec/lib/ecr_cleaner_spec.rb
620
625
  - spec/lib/ps_spec.rb