Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-16 15:09:12 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-16 15:09:12 +0300
commitcbfe03ae04a52d9825ff7cbeccdfe5d313adf6a2 (patch)
treee4879b35d019d3bbba1689f3ac4c48b81bf7b451 /doc/ci/cloud_deployment
parent3fd97b4bba24ca412112aad025a38a32c7a6cf8c (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc/ci/cloud_deployment')
-rw-r--r--doc/ci/cloud_deployment/index.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/doc/ci/cloud_deployment/index.md b/doc/ci/cloud_deployment/index.md
index ccb6b60ecc9..ccff302750c 100644
--- a/doc/ci/cloud_deployment/index.md
+++ b/doc/ci/cloud_deployment/index.md
@@ -61,3 +61,61 @@ To do so, please make sure to [push your image into your ECR
repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)
before referencing it in your `.gitlab-ci.yml` file and replace the `image`
path to point to your ECR.
+
+### Deploy your application to AWS Elastic Container Service (ECS)
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/207962) in GitLab 12.9.
+
+GitLab provides a series of [CI templates that you can include in your project](../yaml/README.md#include).
+To automate deployments of your application to your [Amazon Elastic Container Service](https://aws.amazon.com/ecs/) (AWS ECS)
+cluster, you can `include` the `Deploy-ECS.gitlab-ci.yml` template in your `.gitlab-ci.yml` file.
+
+Before getting started with this process, you need a cluster on AWS ECS, as well as related
+components, like an ECS service, ECS task definition, a database on AWS RDS, etc.
+[Read more about AWS ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html).
+
+After you're all set up on AWS ECS, follow these steps:
+
+1. Make sure your AWS credentials are set up as environment variables for your
+ project. You can follow [the steps above](#aws) to complete this setup.
+1. Add these variables to your project's `.gitlab-ci.yml` file:
+
+ ```yaml
+ variables:
+ CI_AWS_ECS_CLUSTER: my-cluster
+ CI_AWS_ECS_SERVICE: my-service
+ CI_AWS_ECS_TASK_DEFINITION: my-task-definition
+ ```
+
+ Three variables are defined in this snippet:
+
+ - `CI_AWS_ECS_CLUSTER`: The name of your AWS ECS cluster that you're
+ targeting for your deployments.
+ - `CI_AWS_ECS_SERVICE`: The name of the targeted service tied to
+ your AWS ECS cluster.
+ - `CI_AWS_ECS_TASK_DEFINITION`: The name of the task definition tied
+ to the service mentioned above.
+
+ You can find these names after selecting the targeted cluster on your [AWS ECS dashboard](https://console.aws.amazon.com/ecs/home):
+
+ ![AWS ECS dashboard](../img/ecs_dashboard_v12_9.png)
+
+1. Include this template in `.gitlab-ci.yml`:
+
+ ```yaml
+ include:
+ - template: Deploy-ECS.gitlab-ci.yml
+ ```
+
+ The `Deploy-ECS` template ships with GitLab and is available [on
+ GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Deploy-ECS.gitlab-ci.yml).
+
+1. Commit and push your updated `.gitlab-ci.yml` to your project's repository, and you're done!
+
+ Your application Docker image will be rebuilt and pushed to the GitLab registry.
+ Then the targeted task definition will be updated with the location of the new
+ Docker image, and a new revision will be created in ECS as result.
+
+ Finally, your AWS ECS service will be updated with the new revision of the
+ task definition, making the cluster pull the newest version of your
+ application.