ufo 4.5.7 → 4.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +2 -0
- data/docs/_docs/conventions.md +1 -1
- data/docs/_docs/extras/codebuild-iam-role.md +2 -2
- data/docs/_docs/extras/dockerfile-erb.md +2 -2
- data/docs/_docs/extras/ecs-network-mode.md +2 -2
- data/docs/_docs/extras/load-balancer.md +2 -2
- data/docs/_docs/extras/minimal-deploy-iam.md +2 -2
- data/docs/_docs/extras/redirection-support.md +2 -2
- data/docs/_docs/extras/route53-support.md +2 -2
- data/docs/_docs/extras/security-groups.md +2 -2
- data/docs/_docs/extras/ssl-support.md +2 -2
- data/docs/_docs/faq.md +2 -2
- data/docs/_docs/helpers.md +1 -1
- data/docs/_docs/install.md +1 -1
- data/docs/_docs/more/auto-completion.md +2 -2
- data/docs/_docs/more/automated-cleanup.md +2 -2
- data/docs/_docs/more/customize-cloudformation.md +2 -2
- data/docs/_docs/more/migrations.md +2 -2
- data/docs/_docs/more/run-in-pieces.md +2 -2
- data/docs/_docs/more/single-task.md +2 -2
- data/docs/_docs/more/stuck-cloudformation.md +2 -2
- data/docs/_docs/more/why-cloudformation.md +2 -2
- data/docs/_docs/next-steps.md +2 -2
- data/docs/_docs/quick-start-ec2.md +1 -1
- data/docs/_docs/settings.md +1 -1
- data/docs/_docs/settings/aws_profile.md +1 -1
- data/docs/_docs/settings/cfn.md +1 -1
- data/docs/_docs/settings/cluster.md +1 -1
- data/docs/_docs/settings/network.md +1 -1
- data/docs/_docs/ssl_errors.md +40 -0
- data/docs/_docs/structure.md +1 -1
- data/docs/_docs/tutorial-ufo-docker-build.md +1 -1
- data/docs/_docs/tutorial-ufo-init.md +1 -1
- data/docs/_docs/tutorial-ufo-ship.md +1 -1
- data/docs/_docs/tutorial-ufo-ships.md +1 -1
- data/docs/_docs/tutorial-ufo-tasks-build.md +1 -1
- data/docs/_docs/tutorial.md +1 -1
- data/docs/_docs/ufo-current.md +2 -2
- data/docs/_docs/ufo-env-extra.md +2 -2
- data/docs/_docs/ufo-env.md +2 -2
- data/docs/_docs/ufo-logs.md +50 -0
- data/docs/_docs/ufo-task-params.md +2 -2
- data/docs/_docs/upgrading.md +2 -2
- data/docs/_docs/upgrading/upgrade4.5.md +2 -2
- data/docs/_docs/upgrading/upgrade4.md +2 -2
- data/docs/_docs/variables.md +1 -1
- data/docs/_includes/subnav.html +2 -1
- data/docs/_reference/ufo-logs.md +39 -0
- data/docs/articles.md +2 -2
- data/docs/docs.md +1 -1
- data/docs/quick-start.md +1 -1
- data/docs/reference.md +1 -0
- data/docs/utils/ssl-doctor.rb +89 -0
- data/docs/utils/test-aws-api-access.rb +11 -0
- data/docs/utils/update-cert-chains.sh +11 -0
- data/lib/template/.ufo/settings/cfn/default.yml.tt +1 -1
- data/lib/ufo/aws_service.rb +2 -0
- data/lib/ufo/cancel.rb +1 -1
- data/lib/ufo/cli.rb +9 -0
- data/lib/ufo/core.rb +5 -5
- data/lib/ufo/help/logs.md +10 -0
- data/lib/ufo/logs.rb +55 -0
- data/lib/ufo/version.rb +1 -1
- data/spec/fixtures/mocks/logs/awslogs.json +70 -0
- data/spec/fixtures/mocks/logs/no-awslogs.json +70 -0
- data/spec/lib/logs_spec.rb +55 -0
- data/ufo.gemspec +2 -0
- metadata +45 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e191dff1d9d879e6c78eb6062dbdf8440efcc3a1178125af01aaf807e6632e2c
|
4
|
+
data.tar.gz: 9656eee37d6155be650e7292692db31fe54797c1cf6ea5d9b8f75917ffb0dc7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3769a6dedd2cb9100c4531a820dd9c1b848acb84a58186d546a7825c4d96765b2a1a8239d6883bfa7e346e2577ed4a0b4d95da29375a266bb13637dbcafd6428
|
7
|
+
data.tar.gz: b5a48692922794b70328f73153c80f09475c91468e1432f4103d56b80bc5e40f10ef92301e711ee1806e41a1be0987b21b5f1c979371a31ae9b72cc1dbf437e6
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,24 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [4.6.0]
|
7
|
+
- #95 Introduce: ufo logs command. Tail logs.
|
8
|
+
- #96 docs and options
|
9
|
+
|
10
|
+
## [4.5.11]
|
11
|
+
- add mfa support for normal IAM user
|
12
|
+
|
13
|
+
## [4.5.10]
|
14
|
+
- fix .ufo/task_definitions help error message
|
15
|
+
|
16
|
+
## [4.5.9]
|
17
|
+
- fix ufo_env aws_profile tight binding
|
18
|
+
|
19
|
+
## [4.5.8]
|
20
|
+
- #91 added helper scripts to dianose and resolve the SSL issues - added docs to help explain and save the user time and research
|
21
|
+
- improve cancel command
|
22
|
+
- update /up check starter example
|
23
|
+
|
6
24
|
## [4.5.7]
|
7
25
|
- #88 update starter variables template with += example
|
8
26
|
|
data/README.md
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
[![Join the chat at https://gitter.im/tongueroo/ufo](https://badges.gitter.im/tongueroo/ufo.svg)](https://gitter.im/tongueroo/ufo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
9
9
|
[![Support](https://img.shields.io/badge/get-support-blue.svg)](https://boltops.com?utm_source=badge&utm_medium=badge&utm_campaign=ufo)
|
10
10
|
|
11
|
+
[![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](https://www.boltops.com)
|
12
|
+
|
11
13
|
Ufo is a tool that builds Docker images and deploys them to [AWS ECS](https://aws.amazon.com/ecs/). The main command is `ufo ship`. Here's summary of what it does:
|
12
14
|
|
13
15
|
1. Builds a docker image.
|
data/docs/_docs/conventions.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: CodeBuild IAM Role
|
3
|
-
nav_order:
|
3
|
+
nav_order: 32
|
4
4
|
---
|
5
5
|
|
6
6
|
Note, the `/tmp/ecs-deploy-policy.json` policy is available at [Minimal Deploy IAM]({% link _docs/extras/minimal-deploy-iam.md %}).
|
@@ -43,4 +43,4 @@ Create the IAM resources:
|
|
43
43
|
|
44
44
|
The `attach-role-policy` command attaches a Customer Managed IAM policy to the IAM role. This is a little more reusable than using an inline policy.
|
45
45
|
|
46
|
-
{% include prev_next.md %}
|
46
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Dynamic Dockerfile.erb
|
3
|
-
nav_order:
|
3
|
+
nav_order: 33
|
4
4
|
---
|
5
5
|
|
6
6
|
Sometimes you may need a little more dynamic control of your Dockerfile. For these cases, ufo supports dynamically creating a Dockerfile from a Dockerfile.erb. If Dockerfile.erb exists, ufo uses it to generate a Dockerfile as a part of the build process. These means that you should update the source Dockerfile.erb instead, as the Dockerfile will be overwritten. If Dockerfile.erb does not exist, then ufo will use the Dockerfile instead.
|
@@ -57,4 +57,4 @@ Why not use [build args](https://www.jeffgeerling.com/blog/2017/use-arg-dockerfi
|
|
57
57
|
|
58
58
|
Ufo uses a YAML file so users will not have to remember to provide the build arg. It is also easy to update the `dockerfile_variables.yml` with the `ufo docker base` command.
|
59
59
|
|
60
|
-
{% include prev_next.md %}
|
60
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: ECS Network Mode
|
3
|
-
nav_order:
|
3
|
+
nav_order: 27
|
4
4
|
---
|
5
5
|
|
6
6
|
## Pros and Cons: bridge network mode
|
@@ -34,4 +34,4 @@ awsvpc | Fine grain security group permissions for each ECS service. | The numbe
|
|
34
34
|
|
35
35
|
It is generally recommended to use awsvpc mode with ENI trunking supported instances. You get the best of both worlds in this situation: a strong security posture as well as container density.
|
36
36
|
|
37
|
-
{% include prev_next.md %}
|
37
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Load Balancer Support
|
3
|
-
nav_order:
|
3
|
+
nav_order: 25
|
4
4
|
---
|
5
5
|
|
6
6
|
Ufo can automatically create a load balancer and associate it with an ECS service. The options:
|
@@ -80,4 +80,4 @@ Under the hood, ufo implements load balancer support with CloudFormation. You ca
|
|
80
80
|
|
81
81
|
<img src="/img/docs/cloudformation-resources.png" class="doc-photo" />
|
82
82
|
|
83
|
-
{% include prev_next.md %}
|
83
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Minimal Deploy IAM Policy
|
3
|
-
nav_order:
|
3
|
+
nav_order: 31
|
4
4
|
---
|
5
5
|
|
6
6
|
The IAM user you use to run the `ufo ship` command needs a minimal set of IAM policies in order to deploy to ECS. Here is a table of the baseline services needed:
|
@@ -76,4 +76,4 @@ If you are using CodeBuild to deploy, you'll probably be interested the IAM poli
|
|
76
76
|
This page refers to your **user** IAM policy used when running `ufo ship`. These are different from the IAM Policies associated with ECS Task. For those iam policies refer to [IAM Roles for Tasks
|
77
77
|
](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).
|
78
78
|
|
79
|
-
{% include prev_next.md %}
|
79
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Redirection Support
|
3
|
-
nav_order:
|
3
|
+
nav_order: 30
|
4
4
|
---
|
5
5
|
|
6
6
|
## Application Load Balancers
|
@@ -24,4 +24,4 @@ listener:
|
|
24
24
|
|
25
25
|
Network Load Balancers work at layer 4, so they do not support redirection. Instead you need to handle redirection within your app.
|
26
26
|
|
27
|
-
{% include prev_next.md %}
|
27
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Route53 Support
|
3
|
-
nav_order:
|
3
|
+
nav_order: 29
|
4
4
|
---
|
5
5
|
|
6
6
|
Ufo can create a "pretty" route53 record and set it's value to the created ELB DNS name. This is done by configuring the `.ufo/settings/cfn/default.yml` file. Example:
|
@@ -24,4 +24,4 @@ Results in:
|
|
24
24
|
aws route53 create-hosted-zone --name mydomain.com --caller-reference $(date +%s)
|
25
25
|
aws route53 list-hosted-zones
|
26
26
|
|
27
|
-
{% include prev_next.md %}
|
27
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Security Groups
|
3
|
-
nav_order:
|
3
|
+
nav_order: 26
|
4
4
|
---
|
5
5
|
|
6
6
|
Ufo creates and manages two security groups. One for the ELB and one for the ECS tasks.
|
@@ -33,4 +33,4 @@ In general, ports below 32768 are outside of the ephemeral port range. So an eas
|
|
33
33
|
|
34
34
|
If you are using a network load balancer and are running bridge network mode, then you need to whitelist ports 32768 to 65535 to `0.0.0.0/0`. This is because network load balancers operate at layer 4 of the OSI model and cannot be assigned security groups, so they use the security group of the instance. If you feel this is too loose of permissions, you can use awsvpc mode. There are some considerations for awsvpc mode though which is discussed next.
|
35
35
|
|
36
|
-
{% include prev_next.md %}
|
36
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: SSL Support
|
3
|
-
nav_order:
|
3
|
+
nav_order: 28
|
4
4
|
---
|
5
5
|
|
6
6
|
You can configure SSL support by uncomment the `listener_ssl` option in `.ufo/settings/cfn/default.yml`. Here's an example:
|
@@ -17,4 +17,4 @@ For the certificate arn, you will need to create a certificate with AWS ACM. To
|
|
17
17
|
|
18
18
|
The protocol will be either HTTP or HTTPS for Application Load Balancers and TCP or TLS for Network Load Balancers. Ufo will infer the right value, so you usually don't have to configure the protocol manually. You can configure it if required though.
|
19
19
|
|
20
|
-
{% include prev_next.md %}
|
20
|
+
{% include prev_next.md %}
|
data/docs/_docs/faq.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: FAQ
|
3
|
-
nav_order:
|
3
|
+
nav_order: 45
|
4
4
|
---
|
5
5
|
|
6
6
|
**Q: Is AWS ECS Fargate supported?**
|
@@ -97,4 +97,4 @@ Also, you might have to enable the log driver by adding the ECS_AVAILABLE_LOGGIN
|
|
97
97
|
|
98
98
|
Hope that helps.
|
99
99
|
|
100
|
-
{% include prev_next.md %}
|
100
|
+
{% include prev_next.md %}
|
data/docs/_docs/helpers.md
CHANGED
@@ -19,4 +19,4 @@ To call the helper in task_definitions.rb you must add `helper.` in front. So `
|
|
19
19
|
|
20
20
|
The 2 classes which provide these special helper methods are in [ufo/dsl.rb](https://github.com/tongueroo/ufo/blob/master/lib/ufo/dsl.rb) and [ufo/dsl/helper.rb](https://github.com/tongueroo/ufo/blob/master/lib/ufo/dsl/helper.rb). Refer to these classes for the full list of the helper methods.
|
21
21
|
|
22
|
-
{% include prev_next.md %}
|
22
|
+
{% include prev_next.md %}
|
data/docs/_docs/install.md
CHANGED
@@ -32,4 +32,4 @@ For more information about the Bolts Toolbelt or to get an installer for another
|
|
32
32
|
* Docker: You will need a working version of [Docker](https://docs.docker.com/engine/installation/) installed as ufo shells out and calls the `docker` command.
|
33
33
|
* AWS: Set up your AWS credentials at `~/.aws/credentials` and `~/.aws/config`. This is the [AWS standard way of setting up credentials](https://aws.amazon.com/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/).
|
34
34
|
|
35
|
-
{% include prev_next.md %}
|
35
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Auto Completion
|
3
|
-
nav_order:
|
3
|
+
nav_order: 44
|
4
4
|
---
|
5
5
|
|
6
6
|
Ufo supports bash auto-completion. To set it up add the following to your `~/.profile` or `.bashrc`:
|
@@ -21,4 +21,4 @@ Auto Completion examples:
|
|
21
21
|
ufo tasks [TAB]
|
22
22
|
ufo tasks build [TAB]
|
23
23
|
|
24
|
-
{% include prev_next.md %}
|
24
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Automated Clean Up
|
3
|
-
nav_order:
|
3
|
+
nav_order: 43
|
4
4
|
---
|
5
5
|
|
6
6
|
Ufo can be configured to automatically clean old images from the ECR registry after the deploy completes by configuring your [settings.yml]({% link _docs/settings.md %}) file like so:
|
@@ -11,4 +11,4 @@ ecr_keep: 30
|
|
11
11
|
|
12
12
|
Automated Docker images clean up only works if you are using ECR registry.
|
13
13
|
|
14
|
-
{% include prev_next.md %}
|
14
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Customize CloudFormation
|
3
|
-
nav_order:
|
3
|
+
nav_order: 38
|
4
4
|
---
|
5
5
|
|
6
6
|
Under the hood, ufo creates most of the required resources with a CloudFormation stack. This includes the ELB, Target Group, Listener, Security Groups, ECS Service, and Route 53 records. You might need to customize these resources. Here are the ways to customize the resources that ufo creates.
|
@@ -32,4 +32,4 @@ UFO_ENV_EXTRA=2 ufo ship demo-web -\-cluster dev | demo-web-development-2
|
|
32
32
|
|
33
33
|
The CloudFormation stack is currently generated from a template. The source code for this template is located at [cfn/stack.yml](https://github.com/tongueroo/ufo/blob/master/lib/cfn/stack.yml). This implementation might change in the future.
|
34
34
|
|
35
|
-
{% include prev_next.md %}
|
35
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Database Migrations
|
3
|
-
nav_order:
|
3
|
+
nav_order: 42
|
4
4
|
---
|
5
5
|
|
6
6
|
A common task is to run database migrations with newer code before deploying the code. This is easily achieved with the `ufo task` command. Here's an example:
|
@@ -22,4 +22,4 @@ The `ufo task` command is generalized so you can run any one-off task. It is not
|
|
22
22
|
2. Registers the ECS Task definition
|
23
23
|
3. Runs a one-off ECS Task
|
24
24
|
|
25
|
-
{% include prev_next.md %}
|
25
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Run in Pieces
|
3
|
-
nav_order:
|
3
|
+
nav_order: 40
|
4
4
|
---
|
5
5
|
|
6
6
|
The `ufo ship` command goes through a few stages:
|
@@ -27,4 +27,4 @@ Update the service with the task definitions in `.ufo/output` untouched.
|
|
27
27
|
|
28
28
|
Note if you use the `ufo deploy` you should ensure that you have already pushed the docker image to your docker registry. Or else the task will not be able to spin up because the docker image does not exist. This is one of the reasons it is recommended that you use `ufo ship`.
|
29
29
|
|
30
|
-
{% include prev_next.md %}
|
30
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Run Single Task
|
3
|
-
nav_order:
|
3
|
+
nav_order: 41
|
4
4
|
---
|
5
5
|
|
6
6
|
Sometimes you do not want to run a long running `service` but a one time task. Running Rails migrations are an example of a one off task. Here is an example of how you would run a one time task.
|
@@ -22,4 +22,4 @@ You can describe that task for more details:
|
|
22
22
|
|
23
23
|
You can check out the [ufo task](http://ufoships.com/reference/ufo-task/) reference for more details.
|
24
24
|
|
25
|
-
{% include prev_next.md %}
|
25
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Stuck CloudFormation
|
3
|
-
nav_order:
|
3
|
+
nav_order: 39
|
4
4
|
---
|
5
5
|
|
6
6
|
The CloudFormation stack update or creation can get stuck in a `*_IN_PROGRESS` state for a very long time, like more than an hour. This happens when you deploy an ECS service that fails to stabilize. Usually, this is an error with the Docker container failing to start up successfully.
|
@@ -26,4 +26,4 @@ To cancel a current deploy, run:
|
|
26
26
|
|
27
27
|
This is the same thing as canceling the stack update in the CloudFormation console.
|
28
28
|
|
29
|
-
{% include prev_next.md %}
|
29
|
+
{% include prev_next.md %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Why CloudFormation
|
3
|
-
nav_order:
|
3
|
+
nav_order: 37
|
4
4
|
---
|
5
5
|
|
6
6
|
Version 3 of ufo was a simpler implementation and did not make use of CloudFormation to create the ECS service. In version 4, ufo uses CloudFormation to create the ECS Service. This is because ufo became more powerful. Notably, support for Load Balancers was added. With this power, also came added complexity. So the complexity was push onto CloudFormation. Hence, ECS service is implemented as CloudFormation resource in version 4.
|
@@ -18,4 +18,4 @@ You can check the resources created with CloudFormation by clicking on the stack
|
|
18
18
|
|
19
19
|
<img src="/img/docs/cloudformation-resources.png" class="doc-photo" />
|
20
20
|
|
21
|
-
{% include prev_next.md %}
|
21
|
+
{% include prev_next.md %}
|
data/docs/_docs/next-steps.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
title: Next Steps
|
3
|
-
nav_order:
|
3
|
+
nav_order: 47
|
4
4
|
---
|
5
5
|
|
6
6
|
This concludes the tutorial guide for ufo. Hopefully you are now more comfortable with ufo's basic usage, concepts, and have a feel for the workflow.
|
@@ -13,4 +13,4 @@ From here, there are a few resources that can help you continue along:
|
|
13
13
|
|
14
14
|
Everyone can contribute to make ufo better, including the documentation. These docs are of the same ufo repo in the [docs folder](https://github.com/tongueroo/ufo/tree/master/docs). Please fork the project and open a pull request! We love your pull requests. Contributions are encouraged and welcomed!
|
15
15
|
|
16
|
-
{% include prev_next.md %}
|
16
|
+
{% include prev_next.md %}
|
data/docs/_docs/settings.md
CHANGED
@@ -51,4 +51,4 @@ An interesting option is `aws_profile`. This allows you to tightly connect an A
|
|
51
51
|
|
52
52
|
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. This is detailed in the [Settings Cluster docs]({% link _docs/settings/cluster.md %}).
|
53
53
|
|
54
|
-
{% include prev_next.md %}
|
54
|
+
{% include prev_next.md %}
|
@@ -33,4 +33,4 @@ The binding is two-way. So:
|
|
33
33
|
|
34
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
35
|
|
36
|
-
{% include prev_next.md %}
|
36
|
+
{% include prev_next.md %}
|
data/docs/_docs/settings/cfn.md
CHANGED
@@ -32,4 +32,4 @@ elb_subnets | Used to create elb load balancer. Defaults to same subnets as ecs
|
|
32
32
|
ecs_security_groups | Additional security groups to associate with the ECS tasks.
|
33
33
|
elb_security_groups | Additional security groups to associate with the ELB.
|
34
34
|
|
35
|
-
{% include prev_next.md %}
|
35
|
+
{% include prev_next.md %}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
Title: SSL Errors
|
3
|
+
---
|
4
|
+
|
5
|
+
UFO uses the AWS Ruby SDK and the underlying default SSL certificate chain configured in your active Ruby and
|
6
|
+
OpenSSL to communicate to your AWS environment. This means that you _must correctly configure_ your Ruby and OpenSSL to have all the needed ROOT certificates for UFO to be able to communicate to AWS - _especially_ if you are behind a proxy or a corporate SSL-Proxy.
|
7
|
+
|
8
|
+
If you are behind a corporate SSL proxy and you have not updated system, OpenSSL and Ruby certificate chains to include the needed corporate root certificates, you will see errors, such as:
|
9
|
+
|
10
|
+
```
|
11
|
+
Seahorse::Client::NetworkingError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate in certificate chain)
|
12
|
+
~/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock'
|
13
|
+
~/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
|
14
|
+
~/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:996:in `connect'
|
15
|
+
~/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
|
16
|
+
~/.rbenv/versions/2.6.0/lib/ruby/2.6.0/net/http.rb:925:in `start'
|
17
|
+
```
|
18
|
+
|
19
|
+
## Helper Scripts
|
20
|
+
|
21
|
+
The `docs/utils` directory has a few scripts that should be able to help you resolve these issues and track down which certs are giving you problems.
|
22
|
+
|
23
|
+
- `ssl-doctor.rb` is from the very useful examples at <https://github.com/mislav/ssl-tools>, and it can help you find the missing ROOT cert in your certificate chain and give suggestion on getting OpenSSL working correctly.
|
24
|
+
- `update-cert-chains.sh` will help you update your Ruby and OpenSSL chains by adding in the missing ROOT cert and also pulling in the OSX System Root to your rbenv environment.
|
25
|
+
- `test-aws-api-access.rb` should now return a list of the S3 buckets for the current AWS profile that is active.
|
26
|
+
|
27
|
+
## Trouble-shooting
|
28
|
+
|
29
|
+
### Update Brew and OpenSSL
|
30
|
+
|
31
|
+
- `brew update`
|
32
|
+
- `brew upgrade openssl`
|
33
|
+
|
34
|
+
### Use the Helper Scripts to find the trouble spot
|
35
|
+
|
36
|
+
Once you have updated OpenSSL and your `brew` packages, use the helper scripts above to see if you can track down the missing certificate in your certificate chain.
|
37
|
+
|
38
|
+
The `update-cert-chain.sh` file was created using the suggestions from <https://gemfury.com/help/could-not-verify-ssl-certificate/>. Please review the information at <https://gemfury.com/help/could-not-verify-ssl-certificate/> if the `Helper Scripts` above do not fully resolve your issue.
|
39
|
+
|
40
|
+
The `test-aws-api-access.rb` uses examples from the <https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/quick-start-guide.html> for using and configuring the Ruby AWS SDK on your system.
|
data/docs/_docs/structure.md
CHANGED
@@ -58,4 +58,4 @@ Docker push took 12s.
|
|
58
58
|
|
59
59
|
Note in order to push the image to a registry you will need to login into the registry. If you are using DockerHub use the `docker login` command. If you are using AWS ECR then ufo automatically calls the `aws ecr get-login` command and authenticates for you.
|
60
60
|
|
61
|
-
{% include prev_next.md %}
|
61
|
+
{% include prev_next.md %}
|