Skip to content

Commit 53b1cc2

Browse files
oredavidsebeneliasoninfraredgirlMoonMoon1919Andrew Ellison
authored
[WIP] Devops foundations v1 docs (#985)
* Account foundations phase 1 v1 docs * Create section for post control-tower setup actions * Add comments * Add Account Factory Documentation (#1027) * Add account vending documentation --------- Co-authored-by: Eben Eliason <[email protected]> Co-authored-by: Eben Eliason <[email protected]> * Reorg Pipelines docs * Placeholder IA for the new DevOps Foundations docs (#1031) * Address review suggestions * Use ecs-deploy-runner in URLs * Add docs for Pipelines to DevOps foundations (#1035) * Add docs for Pipelines to DevOps foundations * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * Update _docs-sources/foundations/ci-cd/pipelines.md Co-authored-by: Eben Eliason <[email protected]> * address PR feedback --------- Co-authored-by: Eben Eliason <[email protected]> * feat(CORE-1155): Add beginning of manage accounts (#1058) * Add manage accounts page --------- Co-authored-by: Andrew Ellison <[email protected]> * Add disclaimer about pipelines usage data and how customers can disable it (#1077) * Add disclaimer about usage data and how customers can disable it * feat(CORE-1148): Module Default Docs (#1082) * add module default docs --------- Co-authored-by: Eben Eliason <[email protected]> * Feat(CORE-1149): Add docs for folder structure to tf foundations (#1092) * Add docs for folder structure to tf foundations --------- Co-authored-by: Eben Eliason <[email protected]> * Feature/core 1151 control tower clickops (#1070) * initial docs for enabling control tower * fix root thing * add next steps * Add more detailed step-by-step * Add prerequisites and reformat steps * address pr comments * Add Instructions for Shared Account Permissions * Feat(CORE-1255): Add pipelines code exec docs (2) (#1099) * Add docs on what pipelines is and how it works --------- Co-authored-by: Andrew Ellison <[email protected]> Co-authored-by: Eben Eliason <[email protected]> Co-authored-by: docs-sourcer[bot] <99042413+docs-sourcer[bot]@users.noreply.github.com> * feat(CORE-1238): Add upgrade guide from EDR to pipelines v2 (#1115) * Add upgrade guide --------- Co-authored-by: Josh Padnick <[email protected]> * Feat(CORE-1238): Add single account tutorial pipelines docs (#1114) * Add single account tutorial pipelines docs --------- Co-authored-by: Oreoluwa Agunbiade <[email protected]> Co-authored-by: Andrew Ellison <[email protected]> Co-authored-by: Josh Padnick <[email protected]> * Add docs for PR workflow and Branch Protection Settings (#1123) * Tweak sidebar (#1118) - Add "external link" SVG to ECS Deploy Runner section - Put "knowledge base" under a "Community" header Co-authored-by: Andrew Ellison <[email protected]> * Feat(CORE-1273): Add pipelines security docs (#1116) * Add pipelines security docs --------- Co-authored-by: Andrew Ellison <[email protected]> * Feature/terraform foundations (#1125) * add terraform foundations link to control tower page * Start terraform foundations docs * add getting started instructions * make the template instructions less repetitive * call out private repo * oops, staged the docs sourcer file * add machine user docs (#1126) * Restore networking section (#1129) * restore networking section and overview pages * restore running apps * forgot a sidebar overview * feat(CORE-1275): Add Enterprise action permissions (#1127) * Add call out for enterprise users to allow workflows from GW org * Add pipelines action overview page and update pipelines overview (#1128) * add pipelines action overview page * add common terms * fix link * Update _docs-sources/pipelines/overview/index.md Co-authored-by: Andrew Ellison <[email protected]> * remove docker talk --------- Co-authored-by: Andrew Ellison <[email protected]> --------- Co-authored-by: Eben Eliason <[email protected]> Co-authored-by: Eben Eliason <[email protected]> Co-authored-by: Ana Krivokapic <[email protected]> Co-authored-by: Max Moon <[email protected]> Co-authored-by: Andrew Ellison <[email protected]> Co-authored-by: docs-sourcer[bot] <99042413+docs-sourcer[bot]@users.noreply.github.com> Co-authored-by: Josh Padnick <[email protected]>
1 parent fe151cf commit 53b1cc2

File tree

92 files changed

+3848
-540
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+3848
-540
lines changed
File renamed without changes.
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
import Tabs from '@theme/Tabs';
2+
import TabItem from '@theme/TabItem';
3+
4+
# Extending your ECS Deploy Runner
5+
6+
Pipelines can be extended in several ways:
7+
- Adding repositories to supporting building Docker images for many applications
8+
- Updating which branches can kick off which jobs
9+
- Adding additional build scripts that can run in Pipelines
10+
- Adding permissions to Pipelines
11+
12+
13+
## Adding a repository
14+
15+
Pipelines has separate configurations for each type of job that can be performed (e.g., building a docker image, running terraform plan, running terraform apply). An allow-list of repos and branches is defined for each job type, which can be updated to extend your usage of pipelines to additional application repositories.
16+
17+
This portion of the guide focuses on building Docker images for application repos. If you have repositories for which you would like to run `terraform plan` or `terraform apply` jobs, similar steps can be followed, modifying the appropriate task configurations.
18+
19+
<Tabs groupId="deployment-type">
20+
<TabItem value="RefArch" label="RefArch" default>
21+
22+
If you’ve deployed Pipelines as a part of your Reference Architecture, we recommend following the guide on [how to deploy your apps into the Reference Architecture](../../refarch/usage/maintain-your-refarch//deploying-your-apps.md) to learn how to define a module for your application.
23+
24+
To allow Pipelines jobs to be started by events in your repository, open `shared/<your region>/mgmt/ecs-deploy-runner/terragrunt.hcl` and update `docker_image_builder_config.allowed_repos` to include the HTTPS Git URL of the application repo for which you would like to deploy Docker images.
25+
26+
Since pipelines [cannot update itself](./updating.md), you must run `terragrunt plan` and `terragrunt apply` manually to deploy the change from your local machine. Run `terragrunt plan` to inspect the changes that will be made to your pipeline. Once the changes have been reviewed, run `terragrunt apply` to deploy the changes.
27+
28+
</TabItem>
29+
<TabItem value="Standalone" label="Standalone">
30+
31+
If you’ve deployed Pipelines as a standalone framework using the `ecs-deploy-runner` service in the Service Catalog, you will need to locate the file in which you’ve defined a module block sourcing the `ecs-deploy-runner` service.
32+
33+
Once the `ecs-deploy-runner` module block is located, update the `allowed_repos` list in the `docker_image_builder_config` variable to include the HTTPS Git URL of the application repo for which you would like to deploy Docker images.
34+
35+
Refer to the [Variable Reference](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#reference) section for the service in the Library Reference for full configuration details.
36+
37+
Run `terraform plan` to inspect the changes that will be made to your pipeline. Once the changes have been reviewed, run `terraform apply` to deploy the changes. To deploy the application to ECS or EKS you will need to deploy a task definition (ECS) or Deployment (EKS) that references the newly built image.
38+
</TabItem>
39+
</Tabs>
40+
41+
### Adding infrastructure deployer to the new repo
42+
43+
Pipelines can be triggered from GitHub events in many repositories. In order to configure Pipelines for the new repository, you need to add a step in your CI/CD configuration for the repository that uses the `infrastructure-deployer` CLI tool to trigger Docker image builds.
44+
45+
```bash
46+
export ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
47+
export DEPLOY_RUNNER_REGION=$(aws configure get region)
48+
export ECR_REPO_URL="${ACCOUNT_ID}.dkr.ecr.${DEPLOY_RUNNER_REGION}.amazonaws.com"
49+
export DOCKER_TAG=$(git rev-parse --short HEAD)
50+
export REPOSITORY_NAME="example"
51+
export GITHUB_ORG="example-org"
52+
53+
infrastructure-deployer --aws-region "us-east-1" -- docker-image-builder build-docker-image \
54+
--repo "https://github.com/${GITHUB_ORG}/${REPOSITORY_NAME}" \
55+
--ref "origin/main" \
56+
--context-path "path/to/directory/with/dockerfile/" \
57+
--docker-image-tag "${ECR_REPO_URL}/${REPOSITORY_NAME}:${DOCKER_TAG}" \
58+
```
59+
60+
## Specifying branches that can be deployed
61+
62+
Pipelines can be configured to only allow jobs to be performed on specific branches. For example, a common configuration is to allow `terraform plan` or `terragrunt plan` jobs for pull requests, and only allow `terraform apply` or `terragrunt apply` to run on merges to the main branch.
63+
64+
Depending on your use case, you may need to modify the `allowed_apply_git_refs` attribute to update the allow-list of branch names that can kick off the `plan` and `apply` jobs.
65+
66+
For example, a common configuration for `apply` jobs is to specify that this job can only run on the `main` branch:
67+
```tf
68+
allowed_apply_git_refs = ["main", "origin/main"]
69+
```
70+
71+
<Tabs groupId="deployment-type">
72+
<TabItem value="RefArch" label="RefArch" default>
73+
74+
If you’ve deployed Pipelines as a part of your Reference Architecture, open `shared/<your region>/mgmt/ecs-deploy-runner/terragrunt.hcl` and update the values in the `allowed_apply_git_refs` attribute for the job configuration you would like to modify (either `terraform_planner_config` or `terraform_applier_config`).
75+
76+
Run `terragrunt plan` to inspect the changes that will be made to your pipeline. Once the changes have been reviewed, run `terragrunt apply` to deploy the changes.
77+
78+
</TabItem>
79+
<TabItem value="Standalone" label="Standalone">
80+
81+
If you’ve deployed Pipelines as a standalone framework using the `ecs-deploy-runner` service in the Service Catalog, you will need to locate the file in which you’ve defined a module block sourcing the `ecs-deploy-runner` service.
82+
83+
By default, the `ecs-deploy-runner` service from the Service Catalog allows any git ref to be applied. After you locate the module block for `ecs-deploy-runner`, modify the `allowed_apply_git_refs` attribute for the job configuration that you would like to modify (either `terraform_planner_config` or `terraform_applier_config`).
84+
85+
Run `terraform plan` to inspect the changes that will be made to your pipeline. Once the changes have been reviewed, run `terraform apply` to deploy the changes.
86+
</TabItem>
87+
</Tabs>
88+
89+
## Adding a new AWS Service
90+
91+
If you are expanding your usage of AWS to include an AWS service you’ve never used before, you will need to grant each job sufficient permissions to access that service. Pipelines executes in ECS tasks running in your AWS account(s). Each task (terraform planner, applier, docker builder, ami builder) has a distinct execution IAM role with only the permissions each task requires to complete successfully. For example, if you need to create an Amazon DynamoDB Table using Pipelines for the first time, you would want to add (at a minimum) the ability to list and describe tables to the policy for the `planner` IAM role, and all permissions for DynamoDB to the IAM policy for the `terraform-applier` IAM role.
92+
93+
We recommend that the `planner` configuration have read-only access to resources, and the applier be able to read, create, modify, and destroy resources.
94+
95+
<Tabs groupId="deployment-type">
96+
<TabItem value="RefArch" label="RefArch" default>
97+
98+
If you’ve deployed Pipelines as a part of your Reference Architecture, the permissions for the `terraform-planner` task are located in `_envcommon/mgmt/read_only_permissions.yml` and the permissions for the `terraform-applier` task are located in `_envcommon/mgmt/deploy_permissions.yml`. Open and add the required permissions to each file.
99+
100+
After you are done updating both files, you will need to run `terragrunt plan`, review the changes, then `terragrunt apply` for each account in your Reference Architecture.
101+
```bash
102+
cd logs/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
103+
aws-vault exec <your-logs> -- terragrunt apply --terragrunt-source-update -auto-approve
104+
105+
cd shared/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
106+
aws-vault exec <your-shared> -- terragrunt apply --terragrunt-source-update -auto-approve
107+
108+
cd security/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
109+
aws-vault exec <your-security> -- terragrunt apply --terragrunt-source-update -auto-approve
110+
111+
cd dev/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
112+
aws-vault exec <your-dev> -- terragrunt apply --terragrunt-source-update -auto-approve
113+
114+
cd stage/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
115+
aws-vault exec <your-stage> -- terragrunt apply --terragrunt-source-update -auto-approve
116+
117+
cd prod/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
118+
aws-vault exec <your-prod> -- terragrunt apply --terragrunt-source-update -auto-approve
119+
```
120+
</TabItem>
121+
<TabItem value="Standalone" label="Standalone">
122+
123+
If you’ve deployed Pipelines as a standalone framework using the `ecs-deploy-runner` service in the Service Catalog, you will need to locate the file in which you’ve defined a module block sourcing the `ecs-deploy-runner` service.
124+
125+
Modify the AWS IAM policy document being passed into the `iam_policy` variable for the [`terraform_applier_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#terraform_applier_config) and the [`terraform_planner_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#terraform_planner_config) variables. Refer to the [variable reference](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#reference) section for the service in the Library Reference for the full set of configuration details for this service.
126+
127+
After you are done updating the IAM policy documents, run `terraform plan` then review the changes that will be made. Finally, run `terraform apply` to apply the changes.
128+
</TabItem>
129+
</Tabs>
130+
131+
## Adding scripts that can be run in Pipelines
132+
133+
The `deploy-runner` Docker image for Pipelines only allows scripts within a single directory to be executed in the ECS task as an additional security measure.
134+
135+
By default, the `deploy-runner` ships with three scripts — one to build HashiCorp Packer images, one to run `terraform plan` and `terraform apply`, and one to automatically update the value of a variable in a Terraform tfvars or Terragrunt HCL file.
136+
137+
If you need to run a custom script in the `deploy-runner`, you must fork the image code, add an additional line to copy your script into directory designated by the `trigger_directory` argument. Then, you will need to rebuild the Docker image, push to ECR, then update your Pipelines deployment following the steps in [Updating your Pipeline](./updating.md).
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import Tabs from '@theme/Tabs';
2+
import TabItem from '@theme/TabItem';
3+
4+
# Updating Your ECS Deploy Runner
5+
6+
Pipelines is built using the [`terraform-aws-ci`](../../reference/modules/terraform-aws-ci/ecs-deploy-runner/) module. We recommend updating your pipeline whenever there’s a new release of the module.
7+
8+
By default, Pipelines cannot update it’s own infrastructure (ECS cluster, AWS Lambda function, etc), so you must run upgrades to Pipelines manually from your local machine. This safeguard is in place to prevent you from accidentally locking yourself out of the Pipeline when applying a change to permissions.
9+
10+
For example, if you change the IAM permissions of the CI user, you may no longer be able to run the pipeline. The pipeline job that updates the permissions will also be affected by the change. This is a difficult scenario to recover from, since you will have lost access to make further changes using Pipelines.
11+
12+
## Prerequisites
13+
14+
This guide assumes you have the following:
15+
- An AWS account with permissions to create the necessary resources
16+
- An [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) user or role with permissions to start pipelines deployments and update AWS Lambda functions
17+
- [AWS Command Line Interface](https://aws.amazon.com/cli/) (AWS CLI) installed on your local machine
18+
- [`infrastructure-deployer`](https://github.com/gruntwork-io/terraform-aws-ci/tree/main/modules/infrastructure-deployer) CLI tool installed locally
19+
- [`aws-vault`](https://www.github.com/99designs/aws-vault) installed locally for authenticating to AWS
20+
21+
## Updating container images
22+
23+
Gruntwork Pipelines uses two images — one for the [Deploy Runner](https://github.com/gruntwork-io/terraform-aws-ci/blob/main/modules/ecs-deploy-runner/docker/deploy-runner/Dockerfile) and one for [Kaniko](https://github.com/gruntwork-io/terraform-aws-ci/blob/main/modules/ecs-deploy-runner/docker/kaniko/Dockerfile). To update pipelines to the latest version, you must build and push new versions of each image.
24+
25+
Pipelines has the ability to build container images, including the images it uses. You can use the `infrastructure-deployer` CLI tool locally to start building the new image versions. This is the same tool used by Pipelines in your CI system.
26+
27+
```bash
28+
export ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
29+
export DEPLOY_RUNNER_REGION=$(aws configure get region)
30+
export DOCKERFILE_REPO="https://github.com/gruntwork-io/terraform-aws-ci.git"
31+
export ECR_REPO_URL="${ACCOUNT_ID}.dkr.ecr.${DEPLOY_RUNNER_REGION}.amazonaws.com"
32+
export TERRAFORM_AWS_CI_VERSION="v0.52.1"
33+
34+
# Builds and pushes the deploy runner image
35+
infrastructure-deployer --aws-region "$DEPLOY_RUNNER_REGION" -- docker-image-builder build-docker-image \
36+
--repo "$DOCKERFILE_REPO" \
37+
--ref "$TERRAFORM_AWS_CI_VERSION" \
38+
--context-path "modules/ecs-deploy-runner/docker/deploy-runner" \
39+
--env-secret 'github-token=GITHUB_OAUTH_TOKEN' \
40+
--docker-image-tag "${ECR_REPO_URL}/ecs-deploy-runner:${TERRAFORM_AWS_CI_VERSION}" \
41+
--build-arg "module_ci_tag=$TERRAFORM_AWS_CI_VERSION"
42+
43+
# Builds and pushes the kaniko image
44+
infrastructure-deployer --aws-region "$DEPLOY_RUNNER_REGION" -- docker-image-builder build-docker-image \
45+
--repo "$DOCKERFILE_REPO" \
46+
--ref "$TERRAFORM_AWS_CI_VERSION" \
47+
--context-path "modules/ecs-deploy-runner/docker/kaniko" \
48+
--env-secret 'github-token=GITHUB_OAUTH_TOKEN' \
49+
--docker-image-tag "${ECR_REPO_URL}/kaniko:${TERRAFORM_AWS_CI_VERSION}" \
50+
--build-arg "module_ci_tag=$TERRAFORM_AWS_CI_VERSION"
51+
```
52+
Each image may take a few minutes to build and push. Once both images are built, you can update the image tag in your terraform module and update the infrastructure.
53+
54+
## Updating infrastructure
55+
56+
Next, update the references to these images to the new tag values. This will vary depending on if you’re using Pipelines as configured by the Reference Architecture or if you’ve deployed Pipelines as a standalone framework.
57+
58+
<Tabs groupId="deployment-type">
59+
<TabItem value="RefArch" label="RefArch" default>
60+
61+
To update the image tags for pipelines deployed by a Reference Architecture, you update `common.hcl` with the new tag values for these images. The new tag value will be version of `terraform-aws-ci` that the images use. For example, if your newly created images are using the v0.52.1 release of `terraform-aws-ci`, update common.hcl to:
62+
63+
```
64+
deploy_runner_container_image_tag = "v0.52.1"
65+
kaniko_container_image_tag = "v0.52.1"
66+
```
67+
68+
Next, apply the ecs-deploy-runner module in each account:
69+
```bash
70+
cd logs/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
71+
aws-vault exec your-logs -- terragrunt apply --terragrunt-source-update -auto-approve
72+
73+
cd shared/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
74+
aws-vault exec your-shared -- terragrunt apply --terragrunt-source-update -auto-approve
75+
76+
cd security/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
77+
aws-vault exec your-security -- terragrunt apply --terragrunt-source-update -auto-approve
78+
79+
cd dev/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
80+
aws-vault exec your-dev -- terragrunt apply --terragrunt-source-update -auto-approve
81+
82+
cd stage/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
83+
aws-vault exec your-stage -- terragrunt apply --terragrunt-source-update -auto-approve
84+
85+
cd prod/$DEPLOY_RUNNER_REGION/mgmt/ecs-deploy-runner
86+
aws-vault exec your-prod -- terragrunt apply --terragrunt-source-update -auto-approve
87+
```
88+
</TabItem>
89+
<TabItem value="Standalone" label="Standalone">
90+
91+
If you’ve deployed Pipelines as a standalone framework using the `ecs-deploy-runner` service in the Service Catalog, refer to the [Variable Reference](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#reference) section for the service in the Library Reference for configuration details. You will need to update the `docker_tag` value in the `container_image` object for the [`ami_builder_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#ami_builder_config), [`docker_image_builder_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#docker_image_builder_config), [`terraform_applier_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#terraform_applier_config), and [`terraform_planner_config`](../../reference/services/ci-cd-pipeline/ecs-deploy-runner#terraform_planner_config) variables.
92+
93+
Once you have updated any references to the container image tags, you will need to run `terraform plan` and `terraform apply` in each account where pipelines is deployed.
94+
95+
</TabItem>
96+
</Tabs>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Deploying Multi-Account Pipelines
2+
3+
Have you heard about AWS multi-account setups? It's like having a pack of dogs - each one with its own unique personality, strengths, and weaknesses, but all working together to accomplish a common goal.
4+
5+
Imagine you have a pack of dogs, each with their own special skills. You've got a fierce protector who guards the house, a speedy runner who chases down anything that moves, and a snuggly lap dog who just wants to cuddle all day. Each dog has its own needs, but they all rely on you as their owner to provide for them and keep them safe.
6+
7+
Similarly, with AWS multi-account setups, you can have a whole pack of accounts, each with its own unique configuration and requirements, but all managed from a single "parent" account. It's like being the alpha dog of a pack, making sure each member is fed, healthy, and happy.
8+
9+
And just like with a pack of dogs, there are different roles and responsibilities within an AWS multi-account setup. You've got the "owner" account, which is responsible for managing all the other accounts in the pack, and then you've got the "member" accounts, each with their own specific purposes and functions.
10+
11+
It's important to keep all your accounts organized and working together smoothly, just like how you would keep your pack of dogs in line. You don't want one dog to get too aggressive and start fighting with the others, just like you don't want one AWS account to start interfering with the others.
12+
13+
But if you can manage your pack of dogs successfully, they can work together to accomplish great things - just like how an AWS multi-account setup can help you achieve your goals with ease and efficiency. So, if you're a dog lover like me, you'll find that AWS multi-account setups are just as fun and rewarding as having a pack of loyal furry friends by your side. Woof!
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# ECS Deploy Runner
2+
3+
:::info Newer Version Available
4+
This documentation pertains to an old version of Gruntwork Pipelines which used the ECS Deploy Runner. [Click here](../../pipelines/overview/) to view documentation for the most recent version.
5+
:::
6+
7+
8+
Gruntwork Pipelines is a framework that enables you to use your preferred CI tool to
9+
securely run an end-to-end pipeline for infrastructure code ([Terraform](https://www.terraform.io/)) and
10+
app code ([Docker](https://www.docker.com/) or [Packer](https://www.packer.io/)). Rather than replace your existing CI/CD provider, Gruntwork Pipelines is designed to enhance the security
11+
of your existing tool.
12+
13+
Without Gruntwork Pipelines, CI/CD tools require admin level credentials to any AWS account where you deploy infrastructure.
14+
This makes it trivial for anyone with access to your CI/CD system to access AWS credentials with permissions
15+
greater than they might otherwise need.
16+
Gruntwork Pipelines allows a highly restricted set of permissions to be supplied to the CI/CD tool while
17+
infrastructure related permissions reside safely within your own AWS account. This reduces the exposure of your
18+
high value AWS secrets.
19+
20+
21+
File renamed without changes.

0 commit comments

Comments
 (0)