Signed-off-by: aiordache <anca.iordache@docker.com> Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com> |
||
|---|---|---|
| .. | ||
| cmd | ||
| pkg | ||
| tests | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| golangci.yaml | ||
README.md
Docker CLI plugin for Amazon ECS
Architecture
ECS plugin is a Docker CLI plugin
root command ecs require aws profile to get API credentials from ~/.aws/credentials
as well as AWS region - those will later be stored in a docker context
A compose.yaml is parsed and converted into a CloudFormation
template, which will create all resources in dependent order and cleanup on
down command or deployment failure.
+--------------------------------------+
| compose.yaml file |
+--------------------------------------+
- Load
+--------------------------------------+
| compose Model |
+--------------------------------------+
- Validate
+--------------------------------------+
| compose Model suitable for ECS |
+--------------------------------------+
- Convert
+--------------------------------------+
| CloudFormation Template |
+--------------------------------------+
- Apply
+--------------+ +----------------+
| AWS API | or | stack file |
+--------------+ +----------------+
- Load phase relies on compose-go. Any generic code we write for this purpose should be proposed upstream.
- Validate phase is responsible to inject sane ECS defaults into the compose-go model, and validate the
compose.yamlfile do not include unsupported features. - Convert produces a CloudFormation template to define all resources required to implement the application model on AWS.
- Apply phase do apply the CloudFormation template, either by exporting to a stack file or to deploy on AWS.