Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting additional AWS resources #644

Closed
8 tasks done
efekarakus opened this issue Feb 11, 2020 · 2 comments
Closed
8 tasks done

Supporting additional AWS resources #644

efekarakus opened this issue Feb 11, 2020 · 2 comments
Assignees
Labels
area/addon Issues about addons. type/feature Issues that are new feature requests.

Comments

@efekarakus
Copy link
Contributor

efekarakus commented Feb 11, 2020

Overview

Currently users can’t add other resources, such as a S3 bucket, to their application’s architecture beyond what is provided in the manifest. This issue describes the proposed solution and tracks the sub-tasks to deliver the feature.

Proposed design

We're proposing to add new top-level commands for resource categories that are likely to be common: secrets, storage, and mesh.

addons

A user that runs ecs-preview storage init will be greeted with a helpful interactive prompt to guide them through the AWS service's concepts and fill any required fields.

The resulting directory structure will be as follows, with the generated CloudFormation resources under the addons/ directory:

./
├── Dockerfile
├── LICENSE
├── app.js
└── ecs-project/
    └── {appName}/
        ├── addons/
        │   ├── {resourceName}-table.yml
        │   ├── outputs.yml
        │   ├── params.yml
        │   └── policy.yml
        └── manifest.yml

Users can then modify any of the files under addons/ except params.yml to tweak their service. If a service is not offered as a command, they'll be able to create the CFN template themselves and drop it under addons/.

Output values in outputs.yml will be added as environment variables to their app container in their ECS service.

The templates under addons/ will be glued together and ingested as a nested stack under their application stack.

Milestones

  1. Deliver custom addons

The remaining milestones are to create the commands that write to the addons/ directory.
The commands that we're considering:

  1. ecs-preview storage init will allow you to create S3 buckets, DDB tables, Aurora serverless db cluster.
  2. ecs-preview secrets init will allow you to create SecretsManager secrets.
  3. ecs-preview mesh init will allow you to create an AppMesh mesh.
@efekarakus
Copy link
Contributor Author

@hencrice 's suggestion: for the params.yml file we create it with a file permission of 400 so that only the user has permission to read and hints that the file should not be modified.

@efekarakus
Copy link
Contributor Author

Closing this issue as we delivered this feature :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/addon Issues about addons. type/feature Issues that are new feature requests.
Projects
Sprint 🏃‍♀️
  
Pending release
Development

No branches or pull requests

1 participant