Releases: aws/copilot-cli
copilot-cli: Release v0.7.0
🐛 Bug Fixes
- Fix regression introduced in v0.6.0 where new applications that use the
--domain
flag could not initialize environments (#1662) - Show the option of using an existing image name if there are no Dockerfiles in the repository (#1659)
- User experience improvements (#1670, #1672)
💥 Features and enhancements
- Add new auto scaling fields for Load Balanced Web Services:
requests
andresponse_time
to scale your services on the number of requests handled per task and service average response time respectively.
❤️ Contributions
Thank you all for the contributions!
copilot-cli: Release v0.6.0
🐛 Bug Fixes
- Using existing images with the
image.location
field now works for Scheduled Jobs (#1571) - The user experience on Windows for environment creation and deployments now matches other platforms (#1590)
- Documentation typo fixes (#1570, #1634)
💥 Features and enhancements
-
The
image.build
field now supportstarget
andcache_from
fields (#1555)
You can specify a specific build target orcache_from
to use a build cache.image: build: target: build-stage cache_from: - alpine:latest
-
Add new command
pipeline ls
to list existing pipelines in your application (#1529) -
Add additional health checks configuration for Load Balanced Web Services (#1592)
Previously, Copilot only allowed you to specify the health check path and set defaults for other settings:healthcheck: '/_healthcheck'
Now, you can now configure the number of consecutive health checks successes required before considering an unhealthy target healthy, the number of health check failures required before considering a target unhealthy, the interval between health checks, and timeout duration:
healthcheck: path: '/_healthcheck' healthy_threshold: 3 # Default is 2. unhealthy_threshold: 4 # Default is 2. interval: 7s # Default is 10s. timeout: 30s # Default is 5s.
-
We no longer create Application Load Balancers by default in your environments! (#1508)
With this change, if your application consists of only Backend Services you won't be paying for an unused ALB.
Instead, the ALB creation happens in your environment only if you deploy a Load Balanced Web Service. -
The
http
field for Load Balanced Web Services now supportsallowed_source_ips
to limit the IP addresses that can access your service. (#1643)
❤️ Contributions
Thank you all so much for the contributions!
- @mRoca (#1555)
- @Y-Fujikawa (#1634)
copilot-cli: Release v0.5.0
Bug fixes
- Secret and variable environment overrides now work for pipelines (#1539)
Please re-run
copilot pipeline init
&&copilot pipeline update
to generate the fixed buildspec and push it so that the build stage unblocks. - The
autoscaling
field is now assigned a default value if environment overrides are provided (#1469) - The
--command
flag fortask run
no longer splits quoted elements (#1467) - Dockerfiles no longer need to be under your workspace (#1446, #1448)
- The
--app
flag is now prioritized over the application associated with your workspace (#1399)
Features and enhancements
-
New command family,
$ copilot job
, to manage scheduled tasks (#1531)
You can now usejob init
to create a manifest for a task that's invoked at a fixed schedule or periodically. Scheduled jobs can have timeouts and retries.
Just like for services, there are also few other commands available:job ls
,job package
,job deploy
,job delete
.⚠️ Breaking change: The--svc
flag is renamed to--name
and--svc-type
to--type
for thecopilot init
command to accommodate for new workload types. -
Support using an image instead of a Dockerfile (#1473)
Instead of building from a Dockerfile, you can now leverage thelocation
field for using an existing image.image: location: nginx # or account-id.dkr.ecr.region.amazonaws.com/my-app/my-svc:tag for pulling from ECR
-
Backend Services no longer need an exposed port (#1478)
-
AWS named profiles are no longer needed on app and environment deletions (#1510)
⚠️ Breaking change: The--profile
flag is no longer needed for theenv delete
command and was removed .
Similarly, the--env-profiles
flag is no longer needed for theapp delete
command and was removed.
Contributions
copilot-cli: Release v0.4.0
Bug fixes
- Environment variable strings in the manifests are now escaped (#1322)
- Test command values in the pipeline manifests are now escaped (#1327)
- The
svc logs
command does not skip log events anymore when you have multiple tasks running (#1328) - GitHub URL input for
pipeline init
now works on Windows (#1326) - Color only error strings for
svc logs
(#1350)
Features and enhancements
-
Support manual approvals in pipeline manifests (#1273)
You can now addrequires_approval: true
topipeline.yml
to add a manual approval button to your pipeline stage. -
Enable filtering service logs on particular task IDs (#1334)
Thesvc logs
command now supports a--tasks
flag to filter on task IDs. -
Support autoscaling for services (#1355)
Add a new option to service manifests to do automatic scaling of your services with target scaling policies.
You can now update thecount
field in service manifests from a number to the following map to enable autoscaling.count: range: 1-10 # Specify a range for how many tasks you'd like to run in your service. cpu_percentage: 70 # To scale on average CPU. memory_percentage: 80 # Or, to scale on average Memory.
During deployments, Copilot maintains your desired count while autoscaling is active.
-
Display autoscaling alarms when running
svc status
(#1384) -
Prompt for Dockerfile path if we cannot detect it in your git repository (#1341)
-
Support sticky sessions for load balanced web services (#1378)
Add a newstickiness: true
option under thehttp
field for load balanced web services to enable sticky sessions.
Contributions
Thank you so much for the contributions 🙏 ❤️
@git823 (#1273, #1305, #1344, #1378)
@efimenkop (#1326)
@corykitchens (#1350)
copilot-cli: Release v0.3.0
Bug fixes
- The CLI now reads the
~/.aws/config
file as expected while initializing an environment (#1205) - Fix flaky KMS errors while initializing an application by adding
UntagResource
KMS permissions (#1206) - Accept Git repository URIs that end with ".git" while initializing a pipeline (#1215)
- Use your default credential chain instead of the "default" profile while initializing an environment with
copilot init
(#1242)
Features and enhancements
- Enable specifying a
context
and buildargs
for your container image in the manifest (#1059) (docs)- 🚨 To leverage this feature with an existing pipeline, please generate the
buildspec.yml
again withpipeline init
.
- 🚨 To leverage this feature with an existing pipeline, please generate the
- New command
task run
allows you to run one off Amazon ECS tasks in an environment or default cluster. (#702) (docs)- 🚨 Task run will only work with environments created with v0.3.0 and later.
- Enable using an existing VPC and subnets or overriding CIDR ranges while initializing an environment (#740) (docs)
- Enable using temporary credentials while initializing an environment with
env init
(#1228) (docs) - Support ARM64 build target for Linux (#1208)
Contributions
Thank you so much for the contributions 🙏 ❤️
copilot-cli: Release v0.2.0
Bug fixes
- Addon templates no longer require an IAM ManagedPolicy to render (#1075)
- HEALTHCHECK instructions from a Dockerfile are now parsed as an array for a backend service (#1082)
- Stop deleting the ECR repository and SSM parameter when removing a service from an environment (#1127)
- The
svc package
command uses the application's domain name if provided (#1150) - Providing the domain name is only required once while initializing an application (#1156)
- The example for
pipeline init
now uses the correct flag name (#1114)
Features and enhancements
- Add new command
storage init
to add an S3 bucket or DynamoDB table to your service (#1141) pipeline status
,pipeline show
, andenv show
are now visible commands (#1132, #1160)- Display pipeline stages in a tree format and with colors when running
pipeline status
(#1070, #1078)
Contributions
Thank you so much for the contributions 🙏
@carlosafonso (#1114)
@chenrui333 (#1163, #1164)
@trashhalo (#1165)
copilot-cli: Release v0.1.0
We're excited to announce the release of v0.1.0 of the AWS Copilot CLI (beta) 🥳🥂🍾! With the beta releases, you can expect our command names to be stable as well as the shape of our infrastructure patterns.
We want to thank all of customers that tested and helped shape the product from its alpha version, ecs-preview
, to the copilot
CLI 👩
We're super excited to have you start building modern containerized applications with copilot
and hearing your feedback!
Breaking changes
- Rename the binary from
ecs-preview
tocopilot
(#951). - Rename the
ecs-preview app [cmd]
commands tocopilot svc [cmd]
(#951). - Rename the
ecs-preview project [cmd]
commands tocopilot app [cmd]
(#951). - Rename the
ecs-preview wiki
command tocopilot docs
(#955).
To migrate your previous
ecs-preview
project to acopilot
application, we recommend running the following commands from your workspace:$ ecs-preview project delete && copilot init
⚠️ Please note that this will lead to downtime in between the commands.
Bug fixes
- Environment overrides render the CloudFormation stack as expected (#965).
- Accept any file name for your service's Dockerfile (#980).
- List environments outside of a copilot workspace (#1021).
- Deletion commands do not remove your service and pipeline manifests (#1034).
Features and enhancements
- Add
test_commands
field in your pipeline manifests to run tests once your services are deployed (#1033). - Enable sidecar support in the manifest (#875).
- Enable custom log destinations with Firelens and the
logging
field in the manifest (#992). - Addon templates can now be complete CloudFormation templates (#994).
- Parse the
HEALTHCHECK
instruction from your Dockerfile to your service's manifest (#971). - Add new command
copilot pipeline status
that displays the execution history of your pipeline (#972). - Add new command
copilot pipeline show
to displays the configuration of your pipeline (#799). - Improved user experience while prompting for input and logging messages (#976, #974).
amazon-ecs-cli-v2: Release v0.0.9
🎉 Features, enhancements, and bug fixes
- fix(#893): the CodePipeline build step now works if your application's Dockerfile is not at the root of the repository.
- fix(#894):
app status
's--name
prompt now displays the appropriate message while asking for an application name. - fix(#892):
env init
now works with a project initialized with a domain name.
amazon-ecs-cli-v2: Release v0.0.8
🎉 Features, enhancements, and bug fixes
- feature(#816): New application type
Backend App
is now supported withapp init
. You can now create services that are not accessible from the internet. - feature(#746): New command
app status
displays the running status of your application. - feature(#776): New command
wiki
opens the CLI documentation in your browser. - feature(#782):
app deploy
now accepts--resource-tags
flag to add your custom tags while deploying an application. - feature(#772):
project init
now accepts--resource-tags
flag to add your custom tags to all project resources. - enhancement(#718):
init
andapp init
now parses your Dockerfile to detect if there is an exposed port number. - enhancement(#824):
app init --help
shows a more user-friendly help menu. - fix(#831):
app logs --follow
displays logs from new tasks as you scale your service. - fix(#766): Running
project init
in a workspace registered to a different project will now error as expected. - fix(#552, #763, #801, #836):
app init
,env init
,pipeline init
,project delete
is now idempotent.
🚨 Backwards incompatible changes
- feature(#789): Tags are now propagated to your application's ECS tasks.
- fix(#854): The pipeline stack generated with
pipeline update
now is set to the name in your pipeline manifest. - fix(#770):
app show
now uses the flag--name
instead of--app
to display an application's details. - fix(#771):
project show
now uses the flag--name
instead of--project
to display a project's details.
amazon-ecs-cli-v2: Release v0.0.7
🎉 Features and bug fixes
- #644: Enable custom AWS resources by writing AWS CloudFormation templates under the
"addons/"
directory. See the wiki for more details. - #597: Override the default health check path
"/"
by modifying thehealthcheck
field in the application manifest. - #733:
app show
now displays the protocol of the application's URL. - #729: Add
ecs-preview deploy
command that's an alias ofecs-preview app deploy
.
🚨 Backwards incompatible changes
- #748: The first application that you create with
ecs-preview init
will now listen to the default path"/"
and all subsequent applications will listen to"/{appName}"
- #726: Support service discovery.
🙏 Contributions
- #728: ignore empty change set during DNS delegation (thank you @sandyleo26 !)