Releases: aws/copilot-cli
copilot-cli: Release v1.8.0
⚡️ Features and enhancements
- Support friendly domain names for Load Balanced Web Services with the new
http.alias
field (#2379)If you initialized an application with a domain:
copilot app init --domain
, now you can specify a friendly URL instead of the default endpoint generated by Copilot using the manifest:http: alias: 'api.example.com'
To learn more check out the docs! Older applications will need to run
copilot app upgrade
first. - Add a tasks summary and stopped task section to
copilot svc status
to help troubleshoot services (#2381)The new task summary section displays stats on deployments, target group health, and capacity providers.
- Support container dependencies (#2421)
You can now add a dependency condition for your containers:
depends_on: nginx: HEALTHY
- Allow importing a VPC with no public subnets when running
copilot env init
(#2356)If you'd like to launch ECS services in environments with no internet access, now you can import a VPC with no public subnets and launch your services with
placement: 'private'
. For a sample VPC template with VPC endpoints that can be imported see #2378.
🐛 Bug Fixes
- Allow environment overrides for the
image.build
field in manifests (#2415) - Reduce number of log lines written during deployments when the environment variable
CI=true
(#2440) - The
test_commands
field in pipeline manifests now works with environments with dashes in their name (#2439) - Skip docker login when ECR credentials helper is enabled (#2365)
- Parse the cloned Bitbucket URL correctly when filling the pipeline manifest (#2400)
❤️ Contributions
Thank you for the contributions!
copilot-cli: Release v1.7.1
copilot-cli: Release v1.7.0
⚡️ Features and enhancements
- Add a new service pattern: "Request-Driven Web Service" to launch services using AWS App Runner (#2340)
Copilot now supports launching services with AWS App Runner as an alternative to "Load Balanced Web Services".
AWS App Runner scales up your services based on incoming traffic and scales down to a baseline instance when there's no traffic.
To learn more: https://aws.amazon.com/blogs/containers/introducing-aws-app-runner/ - Add
copilot secret init
command to simplify adding secrets to your application (#2335) - Add new flag
copilot task run --generate-cmd
to populate the command from an existing service or job (#2201)With the
--generate-cmd
flag you can spin a one-off task from an existing service and override its entrypoint or command easily. - Support CodeBuild test reports for pipelines (#2306)
🐛 Bug Fixes
- Provide better error messaging when an addon stack fails to create or update (#2270)
- Upload pipeline CloudFormation template to S3 before deploying the stack to prevent template size limit (#2243)
- Allow
app show
andenv delete
to run outside of your workspace (#2269)
❤️ Contributions
Thank you for the contributions!
copilot-cli: Release v1.6.0
⚡️ Features and enhancements
- Support extensible ephemeral task storage (#2219)
Previously, Fargate tasks were limited to 20GiB of storage space. Now, you can provision up to 200GiB of ephemeral task storage for workloads with large datasets or heavy ephemeral storage requirements.
storage: ephemeral: 100 // Size in GiB
This storage is shareable between containers and sidecars in the same task definition.
- Add managed EFS volume support (#2137)
You can now specify
efs: true
in volume configuration and Copilot will provision an EFS volume which all services can share.storage: volumes: managedEFSVolume: path: /var/efs read_only: false efs: true
You can also specify a custom UID and GID for the created access point:
efs: uid: 10000 gid: 100000
- Enable Fargate Spot in autoscaling config (#2188)
You can now specify autoscaling and
count
configurations which include Fargate Spot capacity! For example, you can specify that you want all your capacity to be placed on spot:count: spot: 2
Or, when you specify an autoscaling range, you can specify the
spot_from
field, which tells Copilot the threshold at which you want your service to start scaling into Spot capacity:count: range: min: 2 max: 10 spot_from: 4
In this example, your service will place 3 tasks on dedicated Fargate capacity. Copilot will attempt to place all tasks above this threshold on Spot capacity.
- Add
--secrets
and--cluster
flags tocopilot task run
(#2163, #2164) - Allow use of specific Codebuild images in pipelines (#2125)
//pipeline.yml build: image: aws/codebuild/standard:3.0
- Display AWS resources as architecture hints next to patterns (#2179)
- Add
labels
field to allow runtime labels on containers and sidecars (#2186)image: build: ./Dockerfile labels: com.amazonaws.ecs.copilot.description: Hello world! sidecars: myCoolSidecar: image: public.ecr.aws/my-image:abcde labels: com.amazonaws.ecs.copilot.sidecar.description: cool sidecar
- Use image digest instead of commit id when deploying (#2196)
Now you don't have to create a new commit to ensure that your service is deployed whenever you make a code change. This also streamlines workflows in directories which are not Git repositories, as we no longer require you to enter a tag on deployment.
🐛 Bug Fixes
- Clean up several minor bugs in
copilot pipeline status
(#2170) - Select from SSM when deleting services to allow selection of services not in local workspace (#2182)
- Create dedicated KMS keys for Aurora addons to resolve an issue with cross-account decrypt permissions (#2207)
- Bump version of Lambda runtimes to Node.js 12 from Node.js 10 (#2237)
❤️ Contributions
copilot-cli: Release v1.5.0
⚡️ Features and enhancements
- Redirect HTTP requests to HTTPS automatically for Load Balanced Web Services with a domain name (#2153)
- Add Aurora Serverless database support to
copilot storage init
(#2129)You can now easily generate an addon for a PostgreSQL or MySQL database associated with your service using a single command.
- Support NAT Gateways for workloads with
placement: private
(#2111)If you launch tasks in
'private'
subnets and use a Copilot-generated VPC, Copilot will add NAT Gateways to your environment.network: vpc: placement: 'private'
- Enable specifying volumes with only a
path
field so that sidecar containers and the service container can share storagestorage: volumes: scratch: path: /var/scratch sidecars: downloader: mount_points: - path: /var/scratch source_volume: scratch
- Allow sidecar containers to be marked as non-essential (#2099)
sidecars: nonessentialSidecar: essential: false
- Enables running the Docker daemon by default in the
test_commands
CodeBuild project of a pipeline (#2097)To enable this feature with an existing pipeline, please run
copilot pipeline update
. - Allow using an existing AWS CodeStar connection in your
pipeline.yml
manifests (#2073)properties: branch: main repository: https://github.com/user/sample-repository connection_name: a-connection # Optional: specify the name of an existing CodeStar Connections connection.
- Add a boolean
--yes
flag tocopilot svc exec
andcopilot task exec
to skip installing the SSM plugin (#2060)
🐛 Bug Fixes
- Fix validation of dynamodb table attributes when running
copilot storage init
(#2135) - Clean up any retained IAM roles when an environment creation fails (#2107)
❤️ Contributions
Thank you for the contributions!
copilot-cli: Release v1.4.0
⚡️ Features and enhancements
-
Add
copilot svc exec
andcopilot task exec
commands to connect to an interactive shell on your containers (#2053)You can now run a single command to easily open an interactive shell from your local machine to a running task on AWS Fargate!
For a step-by-step guide check out the blog post: "Connecting to an interactive shell on your containers running in AWS Fargate using AWS Copilot". -
Copilot now uses AWS CodeStar Connections to trigger your pipeline from a GitHub repository instead of OAuth tokens (#2019)
This feature does not affect existing pipelines. Only new pipelines created with
copilot pipeline init
will create an AWS CodeStar Connection. -
Add
--entrypoint
flag tocopilot task run
to override the default entrypoint (#2017) -
Add
command
andentrypoint
fields to the manifests to override defaults in your service or job image (#1999)command: 'bundle exec thin -p 3000' entrypoint: '/app/start.sh'
🐛 Bug Fixes
- Defining overrides in the
environments
field for scheduled jobs no longer resets defaults (#2044) - The
copilot task run
command can now run tasks if you imported a VPC when initializing an environment (#2024) - Do not allow consecutive or trailing hyphens for service names (#2016)
- Auto-generate CodeBuild project names to run the
test_commands
part of your pipeline (#2003)
❤️ Contributions
Thank you for the contributions!
copilot-cli: Release v1.3.0
🐛 Bug Fixes
- Add additional CloudFormation capabilities for deployment stages in your pipeline (#1962)
We recommend running
pipeline update
if you have any addons that requireTransforms
. - Limit pipeline names when running
pipeline init
to 100 characters (#1957) - Truncate Docker image tag in the "Build" stage of the pipeline to 128 characters (#1957)
⚡️ Features and enhancements
- Enable mounting existing EFS volumes (#1971)
AWS Copilot now supports a new
storage
field in manifests to share an existing EFS filesystem between services. To learn more check out the developing/storage guide.storage: volumes: fs: path: '/etc/mount1' efs: id: fs-1234567
- Support Bitbucket repositories for pipeline triggers (#1944)
You can now run
pipeline init
and choose your Bitbucket repository to trigger your pipeline. 🎉 - Enable deploying to private subnets and specifying additional security groups (#1979)
You can now specify a
network
field to place your tasks in private subnets and add additional security groups.network: vpc: placement: 'public|private' security_groups: [sg-1234, ...]
copilot-cli: Release v1.2.0
🐛 Bug Fixes
task run
no longer associates the ALB security group when tasks are launched in an environment cluster (#1884)- The temporary credentials option in
env init
now uses the values provided (#1862) - The Addons stack now depends on the EnvController resource (#1861)
- The value "on" now evaluates to the string
"on"
instead of booleantrue
in the logging configuration (#1857)
⚡️ Features and enhancements
- Copilot now displays a progress tracker while deploying your services (#1742)
- Add a task delete command to delete the infrastructure for one-off tasks (#1849)
❤️ Contributions
Thank you all for the contributions!
copilot-cli: Release v1.1.0
🐛 Bug Fixes
- The generated
buildspec.yml
for pipelines now only upgrade environments that are part of your pipeline (#1826)Previously, if your pipeline did not contain all the environments available in your application, the build stage in the pipeline would fail.
If you've run into #1805, we recommend re-runningcopilot pipeline init
to generate the new version of the buildspec. - Create the ECS service linked role before creating an ECS cluster if Copilot is used on a brand new AWS account (#1749)
- Addon templates with a
DependsOn
field are now correctly parsed and you can now output parameter values (#1804) - Lowercase default task group name created with
task run
to avoid CloudFormation error (#1784) - Ignore unreadable directories while listing Dockerfiles instead of throwing an error (#1764)
- Ignore case considerations while listing Dockerfiles (#1766)
- Skip prompting for a Dockerfile input if Docker Engine is not running (#1814)
- Throw an error on
job init
if there are no applications in the current workspace (#1779)
⚡️ Features and enhancements
- Support AWS CodeCommit for pipeline triggers (#1808)
You can now run
copilot pipeline init
and choose your AWS CodeCommit repository to trigger your pipeline. 🎉 - Enable deployment circuit breaker for all services by default (#1838)
Amazon ECS will now automatically rollback your deployment on unhealthy deployments without the need of a manual intervention.
- Support environment variables and secrets for sidecar containers (#1725)
- Display injected secret names when running
copilot svc show
(#1704)
copilot-cli: Release v1.0.0
We're excited to announce the general availability of the AWS Copilot CLI with the v1.0.0 release 🥳🎉🎊🍾!
You can now reliably build production-ready containerized applications with Copilot. With the stable releases, you can expect no breaking changes to be introduced unless it's for a bug fix.
We want to thank all customers that tested and helped shape the CLI while it was in preview 🙇♂️ .
🐛 Bug Fixes
- Fix issue where the custom healthcheck path value was ignored and set to default
"/"
(#1686) - Use the dot region URL format while pushing addons templates to S3 in the pipeline buildspec (#1695)
- The
storage init
command now allows you to attach a storage resource to a cron job (#1701)⚠️ Breaking change: the--svc
flag was renamed to--workload
to accommodate jobs.
❤️ Contributions
Thank you all for the contributions!