This repository was archived by the owner on Nov 27, 2023. It is now read-only.
This repository was archived by the owner on Nov 27, 2023. It is now read-only.
[Proposal] define AWS infrastructure in a separate config file #1411
Open
Description
Description
to support AWS deployment we define custom extensions x-aws-vpc
, x-aws-loadbalancer
, x-aws-roles
... This comes with a few drawbacks:
x-aws-*
attributes are not validated, and users might missuse them without being warned (see Checkfoo
implementation do support allx-foo-*
extension fields compose-spec/compose-go#66)- AWS infrastructure is way more complex than the compose one, especially considering networking components. Many user request a way to define subnets assignment to services, which would require extra extensions. Those extensions actually define a full model on top of the compose one, which is entangled in the yaml file
- Last but not least, custom extensions intent by compose-spec is to allow experimentation with new attributes to be proposed to the compose-spec for normalization. But obviously those aws-specific ones won't become standard attributes.
I suggest we adopt the same approach proposed by aws copilot to define the AWS infrastructure within a dedicated file (with schema to validate content). By default, ECS intregration would behave like it does today in absence of x-aws-*
extensions (i.e, use AWS account's default VPC) to make newcomer experience easy. Passing an AWS infrastructure file with explicit resources ARN will allow to tweak resource assignment to services. This approach can help keep the comopse file a developer-centric one while the AWS-specific one would be more operator-centric