History

0.15.0 (2021-05-13)

Version 0.15.0 marks the start of using JSON Schema validation to validate early the content of the Compose files.

The original compose-spec is updated with the varied x-resources and features, source is taken from gh:compose-spec/compose-spec.

This will lead into better and easier long term maintenance of the input definition. Eventually, a lot of the custom settings and classes will use models generated with Pydantic.

New features

  • 92e9d48 Using newer minimum definition (John Preston)

  • 6c0688c Use schema validation to validate compose user-input. (#458) (John Preston)

Improvements

  • ef01b4a Improving documentation (#457) (John Preston)

  • 97c7b65 Adding region and randomness to composite alarm name (#455) (John Preston)

  • b9a8399 Workaround limitation of 20 DB Parameters (Jack Saunders)

  • 3c57cfe Adding CRUD policy template for s3 objects (John Preston)

  • 94d868a Adding Use support to x-s3 (#450) (John Preston)

  • 137a10c Using compose-x render lib to ingest multiple compose files content (#442) (John Preston)

Fixes

  • f7b5ccc Fix/alarm name should be consistent over updates (#456) (John Preston)

  • 92e0693 CRUD policy patch (John Preston)

  • b71f448 Adding forgotten CreateMultipartUpload (John Preston)

  • 5493e6e Fixed families dependencies (#446) (John Preston)

  • 51eb1cb Code formatting (John Preston)

  • 69c5964 Fixing duplicate export names (#445) (John Preston)

0.14.0 (2021-03-23)

Version 0.14.0 is a release coming with a new LICENSE attached, the Mozilla Public License 2.0 (MPL 2.0).

  • 1e82eed LICENSE change to MPL-2.0 (John Preston)

New features

  • 9fbe3aa New pre-defined alarms for services (#432) (John Preston)

  • a6083d7 Added CompositeAlarm support (#431) (John Preston)

Fixes

  • 534dcd0 reversed conditions logic for IAM Role for SAR template (John Preston)

  • 9f145cf Publish template for AWS SAR (#438) (John Preston)

  • 8008043 Removing the scaling target and scaling policies (#436) (John Preston)

  • 122efae Fixed output attribute name for S3 to RDS feature (#433) (John Preston)

Improvements

  • 1eeb6f6 Upgrade to Troposphere 2.7.0 (John Preston)

  • 2afec02 Improved macro settings override and layer key (#440) (John Preston)

  • 51a568f new cfn-macro Parameter BucketName (#439) (John Preston)

  • ef08ae9 New image URL for XRay (John Preston)

  • 670bf27 Adding default prefix for default log group name (#428) (John Preston)

0.13.0 (2021-03-10)

This new version comes with a good mix of fixes and new features supported. In an effort of always improving docker-compose compatibility, a number of features have been added. Volumes support is added for both local volumes (non-bind) and shared volumes (via EFS). Alarm support added to allow creating arbitrary alarms and scaling policies on metrics for non Compose-X managed resources.

New Features

  • 33f7b45 x-alarms support (#425)

  • e12d25a ECS DeploymentConfiguration support with Circuit breaker (#423)

  • dad6d02 awslogs drivers options support (#422)

  • b66876b Added lookup for SecurityGroups in Ingress (#401)

  • c3c1565 x-efs (#395)

  • df7d085 Added tmpfs support

  • d19e60d Added sysctls support

  • 8c4c30e Added working_dir support

  • 71cb736 Added shm_size support

  • a09d233 Added cap_add,cap_drop support

  • 69bc348 Added support for Ulimits

  • 3f380c7 docker-compose ECS local volumes support (#391)

Fixes

  • 811f88d Fixing URLs

  • cae1336 build can be either a string or dict

  • f093931 Fixed self-ingress process (#417)

  • ec3dbc4 Fixing VpcId.Use and x-dns when not set (#415)

  • f0d6635 Fixing lookup resource output condition (#411)

  • 6dbef07 Fixing s3 to ecs bug for lookup (#400)

  • 7edc838 Renamed and fixed condition for registries (#392)

  • 8876047 For PrivateNamespace in CloudMap, using ns-ID (#388)

  • b7130ea Family name is as defined in compose files, and LB use that name instead of logical name (#386)

Improvements

  • 765426b Updated docs

  • 07c6db2 Using troposphere 2.6.4

  • 7a31e63 Simpler regexp to group required, ping and optional healthcheck (#416)

  • 4977767 x-elbv2 settings in macro parameters for LB Attributes (#410)

  • 0ea035a Code Cleanup and Refactor (#409)

  • 8059454 Moved x-s3 settings to MacroParameters and cleaned up old unused code (#407)

  • 8773299 Healthcheck times translated from str to int (#406)

  • 5a49890 When not public NLB, allows to override the LB Subnets to use (#402)

  • 695624f Added compatibility matrix (#398)

  • ec184fc Generic attributes output configuration (#396)

  • 5f1cc0b Adding a message to inform that no port were defined but UseCloudmap (#387)

0.12.0 (2021-01-31)

New features

  • dd9246c Allowing to define features by names and related resources (#376) John Preston

  • 2d0ef6d Allow to define RoleArn for DNS Lookup (#377) John Preston

  • d85fd90 Add an IAM Role to RDS for S3import feature (#373) John Preston

Fixes

  • b690d60 Fixing ingress parsing for Ingress (#382) John Preston

  • 01c0582 Fix import value for subnets to Join for custom subnets (#381) John Preston

  • 8f2b777 Passing the subnets as a string with !Join from mappings (#380) John Preston

  • d72e9c1 Fixed events. Dumbed down the Fargate version John Preston

  • 913d451 Fixing AppMesh

  • 397c4cf Fixed ACM certificate mapping (#366) John Preston

  • f09ad64 Fix S3 name generation, events subnet param (#357) (jacku7) Jack Saunders

Improvements

  • 95f76ab Updated lookup based to be more accurate (#378) John Preston

  • 62b27f7 Documentation updates/fixes and macro install/usage guide (#372) John Preston

  • 1e77c87 Working lookup of DNS zones. Relies on DNS Name only. John Preston

  • 5a8b659 VPC and subnets now in mappings John Preston

  • 913d451 Zones require name John Preston

  • 54593eb ECS Cluster “pointer” as a variable of settings John Preston

  • d801463 * Files pulled for remote files are stored with tempfile * Fixing x-dns John Preston

  • 0267cbc Refactor of DNS into more gracious handling John Preston

  • e56b667 * Refactored ECS Cluster creation for simplicity John Preston

  • ba511dd Create a nightly manifest list pointing always to the latest (#364) John Preston

  • 3596286 Docker image release-work (#363) John Preston

  • 02591ce Support for OIDC and Cognito AUTH action in x-elbv2 (#339) John Preston

  • fb36420 Updating build conditions and methods (#362) John Preston

  • 06d5776 Adding sitemap and meta keywords (#360) John Preston

  • 29e75ef Re-arranging test files and patching up CI files (#361) John Preston

Special changes

The following changes all relate to the release a CFN Macro of ECS Compose-X

  • 1aea413 Allow to set override Function IAM Role John Preston

  • b804360 Maintain policy on previous layer versions (#383) John Preston

  • 5fe8169 Adding retain policy on layer version permissions (#374) John Preston

  • ae3d42a AWS Lambda Layer build and release (#371) John Preston

  • 2b1c21b Adding macro image build phase and deploy template (#370) John Preston

0.11.0 (2021-01-14)

First release of 2021 focusing on some new features / extension of existing features, as well on improving stability.

New features

885e89e - DB Secrets exposable to services (#356) (John Preston) b723cc7 - Allow to override subnets to use for resources deployed inside VPC (#353) (John Preston) 0c6c86c - Create PrefixList for VPC and suibnets when creating a new VPC (#352) (John Preston) 4405fef - Support for ElasticCache Cluster via x-elasticache (#350) (John Preston) 59ceae0 - Added support for CodeGuru Profiling Group (#323) (John Preston) 97529fa - x-docdb support for DBClusterParameterGroup (#349) (John Preston) a8888b6 - Extending ecs-plugin x-fields support (#336) (John Preston)

Improvements

faed0d3 - Align to CamelCase for x-scaling and x-network settings (#347) (John Preston) 249ba18 - Moved defauls into properties dicts. Added more docstrings for clarity (#345) (John Preston) 97345c7 - Pyup/updates (#329) (John Preston) 774640b - Create pyup.io config file (#327) (pyup.io bot)

Fixes

8d14ac0 - Fix for use_cloudmap (#346) (John Preston) aa1ba40 - Fixed properties update (#344) (John Preston) d2cd544 - Fixing VPC related settings (#341) (John Preston)

0.10.0 (2020-12-13)

New features

  • 976e5bb Support for env_file (#318)

  • a432763 Import simple SAM IAM policies templates. (#316)

  • db2c8fe Support for service-to-service explicit ingress (#300)

  • fe1e0af Added to support DB Snapshot for new DB creation (#297)

  • 73cdf9a x-vpc - Support for VPC FlowLogs (#296)

  • b9f1ec8 Scaling rules for Lookup queues (#293)

  • 54faa50 Feature x-dns::Records to add Public DNS Records pointing to elbv2 (#289)

  • d5a97a1 Adding support for kinesis streams (#287)

Improvements

  • 1be3b99 Improved secrets JsonKeys based on suggestions (#322)

  • 6302bc6 x-rds:: Refactor Properties/MacroParameters/Settings (#309)

Fixes

  • 191d420 No interpolate ${AWS::PseudoParameters} (#324)

  • de87457 Bug fixes for RDS/DocDB and ECS containers (#305)

  • 4220d7d TMP solution pending AWS official XRay publish (#304)

  • 2c1fcfc Fix/duplicate secrets keys (#303)

  • 4befc25 Fixed backward logic (#301)

Other updates and corrections

  • 31d7bcc Added kinesis docs (#313)

  • 997f0d9 Added back exports but not using in ComposeX. For cross-stacks usage (#310)

  • cb0be55 Linted up code (#307)

  • 5e559f0 Prefixing the log group with the root stack name for uniqueness (#295)

  • c81f443 Refactored to single function recursively evaluating properties (#291)

  • 16a5d39 Code linting (#285)

0.9.0 (2020-11-26)

New features

  • cabd793 - Support for networks: and mapping to additional subnets. (#282)

  • ba4ed5c - ECS Scheduled tasks support (#280)

  • 82e2086 - Defaulting to encrypted for RDS (#276)

  • a516a09 - Added support for service level x-aws keys from ecs-plugin (#273)

  • 5e1ab08 - Improved logging settings (#265)

  • 96ad398 - x-secrets::Lookup (#256)

  • dfb249c - Lookup for ACM working (#254)

  • ea6e05c - Feature x-docdb (#252)

  • 0a4d258 - Refactor services to root stack (#248)

  • 49a9d31 - ARN of TGT Group always passed to service stack (#245)

  • eafcd38 - Updated documentation (#236)

  • aa4c96b - Feature x-elbv2 with x-acm support and validation via x-dns (#228)

  • fb0bc4a - Allowing RoleArn in x-rds Lookup (#233)

  • 22feb56 - Lookup via resources tag api for VPC resources (#231)

  • be536c1 - Cross-Cccount assume role generally and locally for lookup (#229)

  • 32075f2 - Allow for custom cooldown for steps (#221)

  • ca89836 - Upgrading troposphere==2.6.3 (#216)

  • 3a1b0c8 - Linting DynDB features and use-case files (#213)

  • 67cc67e - Feature x-s3 (#196)

  • 230a9d3 - Lookup RDS DB/Clusters and secrets (#211)

Fixes

  • fc55f4b - Patched version of 0.8.9 with previews for 0.9.0 (#275)

  • 1dc4113 - Replaced LOG.warn with LOG.warning (#271)

  • 42c7027 - Docs improvements (#278)

  • 78bef91 - Clarified Ingress syntax (#261)

  • af31f33 - Fixed a number of small issues (#259)

  • 02da4e1 - Hotfix services attributes (#243)

  • fb7265a - During PyCharm refactor, error change occured (#238)

  • c46c208 - Fixing import export string (#224)

  • 7669799 - Removing missed print (#217)

  • 4171044 - Fixing condition when QueueName property is set (#210)

  • 0ced643 - Patched SQS based scaling rule and alarm (#202)

Syntax changes from previous version

  • 86d2141 - Refactor/services xconfig keys (#269)

  • 1cfa6b7 - Refactor AppMesh properties keys (#262)

  • d753473 - Refactor to classes for XResources and Compose resources (#219)

Documentation theme changed to Read The Docs and tuned some colors.

0.8.0 (2020-10-09)

New features:

Closed reported issues:

Some code refactor and bug fixes have gone in as well to improve stability and addition of new services.

0.7.0 (2020-08-12)

New features:

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.

0.6.0 (2020-08-03)

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.

0.5.3 (2020-07-30)

A lot of minor bug fixes and removing CLI commands to the benefit of better implementation via the compose file.

0.5.2 (2020-07-30)

New features:

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.

Hint

Mind, this might occur a few extra costs.

0.5.1 (2020-07-28)

Small bug patches and code refactoring. SQS now into a single stack unless there are more than 30 queues.

0.5.0 (2020-07-27)

New features

0.4.0 (2020-07-20)

To help with code quality and support, I subscribed to the following services:

0.3.0 (2020-06-21)

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.

Note

In order to respect more closely the docker-compose definition, the key previously used configs now is x-configs

0.2.3 (2020-04-16)

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.

New features

  • 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.

    Note

    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.

0.2.2 (2020-04-10)

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

0.2.1 (2020-05-03)

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

New features

  • #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.

0.1.3 (2020-04-13)

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

Issues closed

0.1.2 (2020-04-04)

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.

Issues closed

Issue related to the fix.

PR related to the fix.

0.1.1 (2020-04-02)

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

0.1.0 (2020-03-24)

  • 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