ufo 4.4.3 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/docs/_docs/conventions.md +1 -1
  5. data/docs/_docs/extras/codebuild-iam-role.md +1 -1
  6. data/docs/_docs/extras/dockerfile-erb.md +60 -0
  7. data/docs/_docs/extras/ecs-network-mode.md +1 -1
  8. data/docs/_docs/extras/load-balancer.md +1 -1
  9. data/docs/_docs/extras/minimal-deploy-iam.md +1 -1
  10. data/docs/_docs/extras/redirection-support.md +1 -1
  11. data/docs/_docs/extras/route53-support.md +1 -1
  12. data/docs/_docs/extras/security-groups.md +1 -1
  13. data/docs/_docs/extras/ssl-support.md +1 -1
  14. data/docs/_docs/faq.md +2 -2
  15. data/docs/_docs/helpers.md +1 -1
  16. data/docs/_docs/more/auto-completion.md +11 -15
  17. data/docs/_docs/more/automated-cleanup.md +1 -1
  18. data/docs/_docs/more/customize-cloudformation.md +5 -5
  19. data/docs/_docs/more/migrations.md +5 -11
  20. data/docs/_docs/more/run-in-pieces.md +6 -12
  21. data/docs/_docs/more/single-task.md +9 -14
  22. data/docs/_docs/more/stuck-cloudformation.md +1 -1
  23. data/docs/_docs/more/why-cloudformation.md +1 -1
  24. data/docs/_docs/next-steps.md +1 -1
  25. data/docs/_docs/settings.md +3 -60
  26. data/docs/_docs/settings/aws_profile.md +36 -0
  27. data/docs/_docs/{settings-cfn.md → settings/cfn.md} +2 -0
  28. data/docs/_docs/settings/cluster.md +72 -0
  29. data/docs/_docs/{settings-network.md → settings/network.md} +3 -1
  30. data/docs/_docs/structure.md +1 -1
  31. data/docs/_docs/ufo-current.md +1 -1
  32. data/docs/_docs/ufo-env-extra.md +1 -1
  33. data/docs/_docs/ufo-env.md +1 -1
  34. data/docs/_docs/{params.md → ufo-task-params.md} +13 -6
  35. data/docs/_docs/upgrading.md +1 -1
  36. data/docs/_docs/upgrading/upgrade4.5.md +54 -0
  37. data/docs/_docs/upgrading/upgrade4.md +1 -1
  38. data/docs/_docs/variables.md +1 -1
  39. data/docs/_includes/subnav.html +13 -4
  40. data/docs/_reference/ufo-apps.md +1 -0
  41. data/docs/_reference/ufo-docker-base.md +10 -0
  42. data/docs/_reference/ufo-network-init.md +6 -5
  43. data/docs/_reference/ufo-task.md +10 -0
  44. data/docs/_reference/ufo-upgrade-v43to45.md +15 -0
  45. data/docs/_reference/ufo-upgrade.md +1 -1
  46. data/docs/articles.md +1 -1
  47. data/lib/ufo.rb +3 -37
  48. data/lib/ufo/apps.rb +18 -11
  49. data/lib/ufo/apps/cfn_map.rb +1 -1
  50. data/lib/ufo/apps/cluster.rb +24 -0
  51. data/lib/ufo/autoloader.rb +21 -0
  52. data/lib/ufo/base.rb +3 -3
  53. data/lib/ufo/cli.rb +2 -1
  54. data/lib/ufo/completer.rb +0 -2
  55. data/lib/ufo/docker.rb +0 -5
  56. data/lib/ufo/docker/builder.rb +12 -4
  57. data/lib/ufo/docker/compiler.rb +21 -0
  58. data/lib/ufo/docker/dockerfile.rb +1 -2
  59. data/lib/ufo/docker/variables.rb +26 -0
  60. data/lib/ufo/dsl.rb +0 -4
  61. data/lib/ufo/help/docker/base.md +10 -0
  62. data/lib/ufo/help/task.md +10 -0
  63. data/lib/ufo/network.rb +0 -4
  64. data/lib/ufo/param.rb +1 -16
  65. data/lib/ufo/ps.rb +0 -2
  66. data/lib/ufo/setting.rb +0 -2
  67. data/lib/ufo/ship.rb +2 -3
  68. data/lib/ufo/stack.rb +1 -4
  69. data/lib/ufo/stack/context.rb +4 -4
  70. data/lib/ufo/stack/helper.rb +10 -4
  71. data/lib/ufo/task.rb +2 -1
  72. data/lib/ufo/tasks.rb +0 -3
  73. data/lib/ufo/upgrade.rb +3 -8
  74. data/lib/ufo/upgrade/{upgrade43to44.rb → upgrade43to45.rb} +5 -5
  75. data/lib/ufo/util.rb +5 -2
  76. data/lib/ufo/version.rb +1 -1
  77. data/spec/fixtures/settings.yml +1 -1
  78. data/ufo.gemspec +1 -0
  79. metadata +30 -13
  80. data/Gemfile.lock +0 -113
  81. data/docs/_docs/upgrading/upgrade4.4.md +0 -39
  82. data/docs/_reference/ufo-upgrade-v43to44.md +0 -15
  83. data/lib/ufo/ecr.rb +0 -6
  84. data/lib/ufo/ecs.rb +0 -5
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: Settings AWS_PROFILE
3
+ short_title: AWS Profile
4
+ categories: settings
5
+ nav_order: 13
6
+ ---
7
+
8
+ ## AWS_PROFILE support
9
+
10
+ An interesting option is `aws_profile`. Here's an example:
11
+
12
+ ```yaml
13
+ development:
14
+ aws_profile: dev_profile
15
+
16
+ production:
17
+ aws_profile: prod_profile
18
+ ```
19
+
20
+ This provides a way to tightly bind `UFO_ENV` to `AWS_PROFILE`. This prevents you from forgetting to switch your `UFO_ENV` when switching your `AWS_PROFILE` thereby accidentally launching a stack in the wrong environment.
21
+
22
+
23
+ AWS_PROFILE | UFO_ENV | Notes
24
+ --- | --- | ---
25
+ dev_profile | development
26
+ prod_profile | production
27
+ whatever | development | default since whatever is not found in settings.yml
28
+
29
+ The binding is two-way. So:
30
+
31
+ UFO_ENV=production ufo ship # will deploy to the AWS_PROFILE=prod_profile
32
+ AWS_PROFILE=prod_profile ufo ship # will deploy to the UFO_ENV=production
33
+
34
+ This behavior prevents you from switching `AWS_PROFILE`s, forgetting to switch `UFO_ENV` and then accidentally deploying a production based docker image to development and vice versa because you forgot to also switch `UFO_ENV` to its respective environment.
35
+
36
+ {% include prev_next.md %}
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  title: Settings Cfn
3
+ short_title: Cfn
4
+ categories: settings
3
5
  nav_order: 14
4
6
  ---
5
7
 
@@ -0,0 +1,72 @@
1
+ ---
2
+ title: Settings Cluster
3
+ short_title: Cluster
4
+ categories: settings
5
+ nav_order: 15
6
+ ---
7
+
8
+ Normally, the ECS cluster defaults to whatever UFO_ENV is set to by [convention]({% link _docs/conventions.md %}). For example, when `UFO_ENV=production` the ECS Cluster is `production` and when `UFO_ENV=development` the ECS Cluster is `development`. There are several ways to override this behavior. Let's go through some examples.
9
+
10
+ ## CLI Override
11
+
12
+ By default, these are all the same:
13
+
14
+ ```sh
15
+ ufo ship demo-web
16
+ UFO_ENV=development ufo ship demo-web # same
17
+ UFO_ENV=development ufo ship demo-web --cluster development # same
18
+ ```
19
+
20
+ If you use a specific `UFO_ENV=production`, these are the same
21
+
22
+ ```
23
+ UFO_ENV=production ufo ship demo-web
24
+ UFO_ENV=production ufo ship demo-web --cluster production # same
25
+ ```
26
+
27
+ Override the convention by explicitly specifying the `--cluster` option in the CLI.
28
+
29
+ ```sh
30
+ ufo ship demo-web --cluster custom-cluster # override the cluster
31
+ UFO_ENV=production ufo ship demo-web --cluster production-cluster # override the cluster
32
+ ```
33
+
34
+ The cavaet is that you must remember to specify `--cluster`. A wrapper `bin/deploy` script could be useful here.
35
+
36
+ ## Environment Cluster Setting
37
+
38
+ If you don't want to specify the `--cluster` option in the command repeatedly, you can configure the cluster based on the the UFO_ENV. Setting the `cluster` option in the `settings.yml` file:
39
+
40
+ ```yaml
41
+ development:
42
+ cluster: dev
43
+
44
+ production:
45
+ cluster: prod
46
+ ```
47
+
48
+ ## Service Cluster Setting
49
+
50
+ Another interesting way of specifying the cluster to use is with the `service_cluster` option. The `service_cluster` option takes a Hash value. Here's an example:
51
+
52
+ ```yaml
53
+ base:
54
+ service_cluster:
55
+ demo-web: web-fleet
56
+ demo-worker: worker-fleet
57
+ ```
58
+
59
+ In this example, ufo will deploy the demo-web service to the web-fleet ECS cluster and the demo-worker service to the worker-fleet ECS cluster.
60
+
61
+ Also since the service_cluster is configured in the base section, it is used for all `UFO_ENV=development`, `UFO_ENV=production`, etc.
62
+
63
+ ## Precendence
64
+
65
+ The precedence of the settings from highest to lowest is:
66
+
67
+ * cli option
68
+ * service_cluster service specific setting
69
+ * cluster environment setting
70
+ * UFO_ENV default convention
71
+
72
+ {% include prev_next.md %}
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: Settings Network
3
- nav_order: 13
3
+ short_title: Network
4
+ categories: settings
5
+ nav_order: 16
4
6
  ---
5
7
 
6
8
  The settings.yml file references a network settings file with the `network_profile` option. This file has configurations that are related to the network. The source code for the starter template file is at [network/default.yml.tt](https://github.com/tongueroo/ufo/blob/master/lib/template/.ufo/settings/network/default.yml.tt) Here's an example network settings file.
@@ -26,7 +26,7 @@ The table below covers the purpose of each folder and file.
26
26
  File / Directory | Description
27
27
  ------------- | -------------
28
28
  <code>output/</code> | The folder where the generated task definitions are written to. The way the task definitions are generated is covered in [ufo tasks build]({% link _docs/tutorial-ufo-tasks-build.md %}).
29
- <code>params</code> | This is where you can adjust the params that get send to the aws-sdk api calls. More info at [Params]({% link _docs/params.md %}).
29
+ <code>params</code> | This is where you can adjust the params that get send to the aws-sdk api calls for the [ufo task](https://ufoships.com/reference/ufo-task/) command. More info at [Params]({% link _docs/ufo-task-params.md %}).
30
30
  <code>settings.yml</code> | Ufo's general settings file, where you adjust the default [settings]({% link _docs/settings.md %}).
31
31
  <code>settings/cfn/default.yml</code> | Ufo's cfn settings. You can customize the CloudFormation resource properties here.
32
32
  <code>settings/network/default.yml</code> | Ufo's network settings. You can customize the vpc and subnets to used here.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Ufo Current
3
- nav_order: 21
3
+ nav_order: 22
4
4
  ---
5
5
 
6
6
  ## service
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: UFO_ENV_EXTRA
3
- nav_order: 20
3
+ nav_order: 21
4
4
  ---
5
5
 
6
6
  Ufo has an concept of extra environments. This is controlled by the `UFO_ENV_EXTRA` variable. By setting `UFO_ENV_EXTRA` you can create additional identical ECS services or environments.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: UFO_ENV
3
- nav_order: 19
3
+ nav_order: 20
4
4
  ---
5
5
 
6
6
  Ufo's behavior is controlled by the `UFO_ENV` environment variable. For example, the `UFO_ENV` variable is used to layer different ufo variable files together to make it easy to specify settings for different environments like production and development. This is covered thoroughly in the [Variables]({% link _docs/variables.md %}) section. `UFO_ENV` defaults to `development` when not set.
@@ -1,9 +1,18 @@
1
1
  ---
2
- title: Params
3
- nav_order: 15
2
+ title: Ufo Task Params
3
+ nav_order: 23
4
4
  ---
5
5
 
6
- Additionally, the params that ufo sends to the [ruby aws-sdk](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ECS/Client.html#run_task-instance_method) methods to create resources can be customized with a `params.yml` file. This allows you to customize the tool using the full power of the aws-sdk.
6
+ You can run one off task with the [ufo task](https://ufoships.com/reference/ufo-task/) command.
7
+
8
+ The `ufo task` commands:
9
+
10
+ 1. Builds the docker image
11
+ 2. Registers the ECS task definition
12
+ 3. Runs the command
13
+
14
+
15
+ The params that ufo sends to the [ruby aws-sdk](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ECS/Client.html#run_task-instance_method) methods to for the one off task can be customized with a `params.yml` file. This allows you use the full power of the aws-sdk.
7
16
 
8
17
  A starter project `.ufo/params.yml` file is generated as part of the `ufo init` command. Let's take a look at an example `params.yml`:
9
18
 
@@ -27,10 +36,8 @@ run_task:
27
36
 
28
37
  Ufo provides 1st class citizen access to adjust the params sent to the aws-sdk calls:
29
38
 
30
- The parameters from this `params.yml` file get merged with params ufo generates internally. Here's an example of where the merging happens in the source code for the run task command [task.rb](https://github.com/tongueroo/ufo/blob/master/lib/ufo/task.rb). Also, here's the starter [params.yml source code](https://github.com/tongueroo/ufo/blob/master/lib/template/.ufo/params.yml.tt) for reference.
31
-
32
39
  ERB and [shared variables]({% link _docs/variables.md %}) are available in the params file. You can also define the subnets in your config/variables and use them in them in the params.yml file.
33
40
 
34
- NOTE: The params.yml file does not have access to the `task_definition_name` helper method. That is only available in the `task_definitions.rb` template_definition code blocks.
41
+ Note, the params.yml file does not have access to the `task_definition_name` helper method. That is only available in the `task_definitions.rb` template_definition code blocks.
35
42
 
36
43
  {% include prev_next.md %}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Upgrading
3
- nav_order: 30
3
+ nav_order: 33
4
4
  ---
5
5
 
6
6
  <ul>
@@ -0,0 +1,54 @@
1
+ ---
2
+ title: Upgrading to Version 4.5
3
+ short_title: Version 4.5
4
+ order: 1
5
+ categories: upgrading
6
+ nav_order: 34
7
+ ---
8
+
9
+ In ufo version 4.4 and 4.5, the default cloudformation stack names used by ufo were changed.
10
+
11
+ * In versions 4.3 and below, the cluster name is prepended to the service name.
12
+ * In version 4.4, the cluster name is appended to the service name.
13
+ * In version 4.5, the Ufo.env name is appended to the service name.
14
+
15
+ By convention, the cluster name defaults to UFO_ENV. So, by default there is not difference between cluster name and UFO_ENV. However, if you were using the cluster option then there will be a difference. Here's a table to help explain:
16
+
17
+ Version | UFO_ENV | Cluster Name | Stack Name
18
+ --- | --- | --- | ---
19
+ 4.3 and below | development | mycluster | mycluster-demo-web
20
+ 4.4 | development | mycluster | demo-web-mycluster
21
+ 4.5 | development | mycluster | demo-web-development
22
+
23
+ You must upgrade to using the new stack and delete the old stack manually. You can delete the old stack with the CloudFormation console by selecting the old stack, clicking Actions, and *Delete Stack*.
24
+
25
+ ## Upgrading Instructions
26
+
27
+ To upgrade from version 4.3 to 4.5 you can run:
28
+
29
+ ufo upgrade v43to45
30
+
31
+ This updates your `.ufo/settings.yml` file to include `stack_naming: append_ufo_env` which removes a warning message and 20 second delay when you deploy. Example:
32
+
33
+ .ufo/settings.yml:
34
+
35
+ ```yaml
36
+ base:
37
+ stack_naming: append_ufo_env
38
+ ```
39
+
40
+ If you would still like to keep the old behavior, you can use:
41
+
42
+ Version | Setting
43
+ --- | ---
44
+ 4.3 and below | stack_naming: prepend_cluster
45
+ 4.4 | stack_naming: append_cluster
46
+ 4.5 | stack_naming: append_ufo_env
47
+
48
+ Support for `prepend_cluster` may be **removed** in future versions.
49
+
50
+ ## Reasoning
51
+
52
+ CloudFormation names the resources it creates with the beginning portion of the stack name. When the stack name prepends the environment then resources like ELBs a little bit harder to identify since they might be named something like this `product-Elb-K0LFFQ9LK50W`. It makes it harder to distinguish ELBs from different apps created by ufo.
53
+
54
+ {% include prev_next.md %}
@@ -3,7 +3,7 @@ title: Upgrading to Version 4.0
3
3
  short_title: Version 4.0
4
4
  order: 2
5
5
  categories: upgrading
6
- nav_order: 32
6
+ nav_order: 35
7
7
  ---
8
8
 
9
9
  A major change in ufo from version 3 to 4 is that the ECS service is now created by CloudFormation. If you have an existing ECS service deployed by ufo version 3, when you deploy your app again with ufo version 4, there will be a new additional ECS service created. Here is the recommended upgrade path.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Shared Variables
3
- nav_order: 16
3
+ nav_order: 17
4
4
  ---
5
5
 
6
6
  Often, you end up using the set of common variables across your task definitions for a project. Ufo supports a shared variables concept to support this. You specify variables files in the `.ufo/variables` folder and they are made available to your `.ufo/task_definitions.rb` as well as your `.ufo/templates` files.
@@ -15,16 +15,23 @@
15
15
  <li><a href="{% link docs.md %}">Docs</a>
16
16
  <ul>
17
17
  <li><a href="{% link _docs/structure.md %}">Structure</a></li>
18
- <li><a href="{% link _docs/settings.md %}">Settings</a></li>
19
- <li><a href="{% link _docs/settings-network.md %}">Settings Network</a></li>
20
- <li><a href="{% link _docs/settings-cfn.md %}">Settings Cfn</a></li>
21
- <li><a href="{% link _docs/params.md %}">Params</a></li>
18
+ <li><a href="{% link _docs/settings.md %}">Settings</a>
19
+ <ul>
20
+ {% assign docs = site.docs | where: "categories","settings" | sort: "order" %}
21
+ {% for doc in docs -%}
22
+ <li><a href='{{doc.url}}'>{{doc.short_title}}</a></li>
23
+ {% endfor %}
24
+ </ul>
25
+ </li>
22
26
  <li><a href="{% link _docs/variables.md %}">Shared Variables</a></li>
23
27
  <li><a href="{% link _docs/helpers.md %}">Helpers</a></li>
24
28
  <li><a href="{% link _docs/conventions.md %}">Conventions</a></li>
25
29
  <li><a href="{% link _docs/ufo-env.md %}">Ufo Env</a></li>
26
30
  <li><a href="{% link _docs/ufo-env-extra.md %}">Ufo Env Extra</a></li>
27
31
  <li><a href="{% link _docs/ufo-current.md %}">Ufo Current</a></li>
32
+ <li><a href="{% link _docs/ufo-task-params.md %}">Ufo Task Params</a></li>
33
+ </ul>
34
+ </li>
28
35
  <li>Extras
29
36
  <ul>
30
37
  <li><a href="{% link _docs/extras/load-balancer.md %}">Load Balancer</a></li>
@@ -35,7 +42,9 @@
35
42
  <li><a href="{% link _docs/extras/redirection-support.md %}">Redirection Support</a></li>
36
43
  <li><a href="{% link _docs/extras/minimal-deploy-iam.md %}">Minimal Deploy IAM</a></li>
37
44
  <li><a href="{% link _docs/extras/codebuild-iam-role.md %}">CodeBuild IAM Role</a></li>
45
+ <li><a href="{% link _docs/extras/dockerfile-erb.md %}">Dockerfile.erb</a></li>
38
46
  </ul>
47
+ </li>
39
48
  <li><a href="{% link _docs/upgrading.md %}">Upgrading</a>
40
49
  <ul>
41
50
  {% assign docs = site.docs | where: "categories","upgrading" | sort: "order" %}
@@ -28,6 +28,7 @@ This command lists ECS services for an ECS cluster. It includes ECS services tha
28
28
  ## Options
29
29
 
30
30
  ```
31
+ [--clusters=one two three] # List of clusters
31
32
  [--verbose], [--no-verbose]
32
33
  [--mute], [--no-mute]
33
34
  [--noop], [--no-noop]
@@ -49,8 +49,18 @@ Some of the output has been excluded so we can focus on the important parts to p
49
49
 
50
50
  It is using the docker `-f Dockerfile.base` option to build the base image. It names the image with `tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e`. The image tag contains useful information: the timestamp when the image was built and the exact git sha of the code. The image gets push to a registry immediately.
51
51
 
52
+ ## Dockerfile FROM updated
53
+
52
54
  Notice at the very end, the *current* `Dockerfile`'s FROM statement has been updated with the newly built base Docker image automatically. This saves you from forgetting to copying and pasting it the `Dockerfile` yourself.
53
55
 
56
+ If you're using a [Dockerfile.erb](https://ufoships.com/docs/extras/dockerfile-erb/), then ufo will update the `.ufo/settings/dockerfile_variables.yml` file instead. It assumes you're using a Dockerfile.erb that looks something like this:
57
+
58
+ ```Dockerfile
59
+ FROM <%= @base_image %>
60
+ # ...
61
+ CMD ["bin/web"]
62
+ ```
63
+
54
64
 
55
65
  ## Options
56
66
 
@@ -29,10 +29,11 @@ The above command creates a `.ufo/settings/network/dev.yml` file. You might wan
29
29
  ## Options
30
30
 
31
31
  ```
32
- [--force] # Bypass overwrite are you sure prompt for existing files.
33
- [--subnets=one two three] # Subnets
34
- [--vpc-id=VPC_ID] # Vpc id
35
- [--filename=FILENAME] # Name of the settings file to create w/o extension.
36
- # Default: default
32
+ [--force] # Bypass overwrite are you sure prompt for existing files.
33
+ [--ecs-subnets=one two three] # ECS Subnets
34
+ [--elb-subnets=one two three] # ELB Subnets
35
+ [--vpc-id=VPC_ID] # Vpc id
36
+ [--filename=FILENAME] # Name of the settings file to create w/o extension.
37
+ # Default: default
37
38
  ```
38
39
 
@@ -11,6 +11,12 @@ reference: true
11
11
 
12
12
  Run a one-time task.
13
13
 
14
+ The `ufo task` commands:
15
+
16
+ 1. Builds the docker image
17
+ 2. Registers the ECS task definition
18
+ 3. Runs the command
19
+
14
20
  ## Examples
15
21
 
16
22
  You can use the `--command` or `-c` option to override the Docker container command.
@@ -29,6 +35,10 @@ The `--task-only` option is useful. By default, the `ufo task` command will buil
29
35
  ufo task demo-web --task-only -c ls # skip docker for speed
30
36
  ufo task demo-web --task-only -c pwd # skip docker for speed
31
37
 
38
+ ## Params
39
+
40
+ You can control and customize the params that get sent to the ECS run_task call with a `config/params.yml` file. More info here: https://ufoships.com/docs/ufo-task-params/
41
+
32
42
 
33
43
  ## Options
34
44
 
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: ufo upgrade v43to45
3
+ reference: true
4
+ ---
5
+
6
+ ## Usage
7
+
8
+ ufo upgrade v43to45
9
+
10
+ ## Description
11
+
12
+ Upgrade from version 4.3 and 4.4 to 4.5
13
+
14
+
15
+
@@ -16,7 +16,7 @@ upgrade subcommands
16
16
  * [ufo upgrade v2to3]({% link _reference/ufo-upgrade-v2to3.md %}) - Upgrade from version 2 to 3.
17
17
  * [ufo upgrade v33to34]({% link _reference/ufo-upgrade-v33to34.md %}) - Upgrade from version 3.3 to 3.4
18
18
  * [ufo upgrade v3to4]({% link _reference/ufo-upgrade-v3to4.md %}) - Upgrade from version 3 to 4.
19
- * [ufo upgrade v43to44]({% link _reference/ufo-upgrade-v43to44.md %}) - Upgrade from version 4.3 to 4.4
19
+ * [ufo upgrade v43to45]({% link _reference/ufo-upgrade-v43to45.md %}) - Upgrade from version 4.3 and 4.4 to 4.5
20
20
 
21
21
  ## Options
22
22
 
data/docs/articles.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Articles
3
- nav_order: 42
3
+ nav_order: 45
4
4
  ---
5
5
 
6
6
  * [How to Create Unlimited Extra Environments
data/lib/ufo.rb CHANGED
@@ -8,44 +8,10 @@ require 'rainbow/ext/string'
8
8
  require 'render_me_pretty'
9
9
  require 'ufo/version'
10
10
 
11
- module Ufo
12
- autoload :Apps, 'ufo/apps'
13
- autoload :AwsService, 'ufo/aws_service'
14
- autoload :Base, 'ufo/base'
15
- autoload :Cancel, 'ufo/cancel'
16
- autoload :CLI, 'ufo/cli'
17
- autoload :Command, 'ufo/command'
18
- autoload :Completer, "ufo/completer"
19
- autoload :Completion, "ufo/completion"
20
- autoload :Core, 'ufo/core'
21
- autoload :Current, 'ufo/current'
22
- autoload :Destroy, 'ufo/destroy'
23
- autoload :Docker, 'ufo/docker'
24
- autoload :DSL, 'ufo/dsl'
25
- autoload :Ecr, 'ufo/ecr'
26
- autoload :ECS, 'ufo/ecs'
27
- autoload :Help, 'ufo/help'
28
- autoload :Info, 'ufo/info'
29
- autoload :Init, 'ufo/init'
30
- autoload :LogGroup, 'ufo/log_group'
31
- autoload :Network, 'ufo/network'
32
- autoload :Param, 'ufo/param'
33
- autoload :Ps, 'ufo/ps'
34
- autoload :Releases, 'ufo/releases'
35
- autoload :Rollback, 'ufo/rollback'
36
- autoload :Scale, 'ufo/scale'
37
- autoload :Sequence, 'ufo/sequence'
38
- autoload :Setting, 'ufo/setting'
39
- autoload :Ship, 'ufo/ship'
40
- autoload :Stack, 'ufo/stack'
41
- autoload :Status, 'ufo/status'
42
- autoload :Stop, 'ufo/stop'
43
- autoload :Task, 'ufo/task'
44
- autoload :Tasks, 'ufo/tasks'
45
- autoload :TemplateScope, 'ufo/template_scope'
46
- autoload :Upgrade, "ufo/upgrade"
47
- autoload :Util, 'ufo/util'
11
+ require "ufo/autoloader"
12
+ Ufo::Autoloader.setup
48
13
 
14
+ module Ufo
49
15
  extend Core
50
16
  end
51
17