ufo 4.3.1 → 4.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.
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