- AWS Account configuration
- From docker-compose to AWS ECS
- ECS Cluster configuration
- AWS AppMesh & AWS Cloud Map for services mesh & discovery
- AWS SQS
- AWS RDS
- AWS VPC, needs no introduction
- AWS KMS
- EC2 resources for ECS Cluster
- AWS AppMesh integration
- Services autoscaling integration
- Fargate CPU/RAM auto configuration
- Multiple services, one microservice
- ACM Certificates auto-create for public services
- x-Resources common syntax
- x-configs & services reference
- Compute Reference Syntax
- 0.8.0 (2020-10-09)
- 0.7.0 (2020-08-12)
- 0.6.0 (2020-08-03)
- 0.5.3 (2020-07-30)
- 0.5.2 (2020-07-30)
- 0.5.1 (2020-07-28)
- 0.5.0 (2020-07-27)
- 0.4.0 (2020-07-20)
- 0.3.0 (2020-06-21)
- 0.2.3 (2020-04-16)
- 0.2.2 (2020-04-10)
- 0.2.1 (2020-05-03)
- 0.1.3 (2020-04-13)
- 0.1.2 (2020-04-04)
- 0.1.1 (2020-04-02)
- 0.1.0 (2020-03-24)
Support for ECS Scaling based on SQS Messages in queue <https://github.com/lambda-my-aws/ecs_composex/pull/194>.
Closed reported issues:¶
Some code refactor and bug fixes have gone in as well to improve stability and addition of new services.
Support for Use on VPC which needs no lookup
Support for IAM policies to manually add ad-hoc permissions outside of the pre-defined ones
Additional configuration file to use with CodePipeline
Various bug fixes and some small features to help making plug-and-play easier. Introduction to Use which should allow for resources reference outside of your account without cross-account lookup.
New features: * Docker-compose multi-files (override support)
The new CLI uses positional arguments matching a specific command which drives what’s executed onwards. Trying to re-implement features as close to the docker-compose CLI as possible.
config allows to get the YAML file render of the docker-compose files put together.
render will put all input files together and generate the CFN templates accordingly.
up will deploy do the same as render, and deploy to AWS CFN.
A lot of minor bug fixes and removing CLI commands to the benefit of better implementation via the compose file.
The support for KMS will be extended to use the CMK for RDS/SQS/SNS and any resource that can use KMS for encryption at rest.
Mind, this might occur a few extra costs.
Small bug patches and code refactoring. SQS now into a single stack unless there are more than 30 queues.
Attempt to making navigation through docs better.
Automatic release to https://nightly.docs.ecs-composex.lambda-my-aws.io/ from master
To help with code quality and support, I subscribed to the following services:
Refactored the way the services, task definitions and containers are put together, in order to support multiple new features:
The support for Docker compose compute settings allows to add up all the CPU / RAM of your service(s) and identify the closest Fargate CPU/RAM configuration for the Task Definition (the respective CPU/RAM of each task is unchanged).
The docker-compose file is now more strictly close to the definition set in Docker Compose, with regards to attributes and their expected types.
In order to respect more closely the docker-compose definition, the key previously used configs now is x-configs
Refactored the ecs part into a class and reworked the configuration settings to allow for easier integration. Documentation has been updated to reflect the changes in the structure of the configs section.
- Enable AWS X-Ray (#56)
Enabling X-Ray will allow developer to get APM metrics and visualize the application interaction with other services.
- No-upload (#64)
This allows to store the templates locally only.
The templates are still validated from their body
- IAM Boundary for the IAM roles (#55)
Permissions boundary are an IAM feature that allows to set boundaries which superseed other permissions associated to the entity. It is often the put as a condition for users creating roles to assign a specific Permission Boundary policy to the roles created.
Refactor of the ECS service template into a single class (still got to be reworked). Refactored the ECS Services into a master class which ingests the CLI kwargs directly.
Reworked and reorganized documentation to help with readability
Code refactored to allow a better way to go over each template and stack so everything is treated in memory before being put into a file and uploaded into S3.
- Issues closed
Docs update and first go at IAM perms (#22)
Refactor of XModules logic onto ECS services (#39)
Templates & Stacks refactor (#38)
Update issue templates for easy PRs and Bug reports
Added make conform to run black against the code to standardize syntax (#26)
Allow to specify directory to write all the templates to in addition to S3. (#27)
Reformatted with black (#25)
Expand TagsSpecifications with x-tags (#24)
Bug fix for root template and Cluster reference (#20)
Documentation structure and content updated to help navigate through modules in an easier way. Documented syntax reference for each module
- #6 - Implement x-rds. Allows to create RDS databases with very little properties needed
Creates Aurora cluster and DB Instance
Creates the DB Parameter Group by importing default settings.
Creates a common subnet group for all DBs to run into (goes to Storage subnets when using –create-vpc).
Creates DB username and password in AWS SecretsManager
Applies IAM permissions to ECS Execution Role to get access to the secret
Applies ECS Container Secrets to the containers to provide them with the secret values through Environment variables.
A patch release with a lot of little features added driven by the writing up of the blog to make it easier to have in a CICD pipeline.
See overall progress on GH Project
Patch release aiming to improve the CLI and integration of the Compute layer so that the compute resources creation in EC2 are standalone and can be created separately if one so wished to reuse.
Added tags definition from Docker ComposeX with the x-tags which allows to add tags to all resources that support tagging from AWS CFN
x-tags: - name: TagA value: SomeValue - name: CostcCentre value: IamNotPayingForThis - name: Some:Special:Key value: A long weird value
or alternatively in an object/dict format
x-tags: TagA: ValueA TagB: ValueB
- First release on PyPI.
Working VPC + Cluster + Services
Working expansion of existing Cluster with new VPC
Working expansion of existing VPC and Cluster with new services
IAM working to allow services access to SQS queues
SQS Queues functional with DLQ
Works on Python 3.6, 3.7, 3.8
Working start of build integration in CodeBuild for automated testing