Skip to content

copilot-cli: Release v1.20.0

Compare
Choose a tag to compare
@huanjani huanjani released this 19 Jul 15:55
39a6f80

⚡️ Features and Enhancements

  • Brand-New Env Manifests Allow You to Configure and Modify your Environments (#3522)

    Update environments even after they're deployed, rather than deleting and recreating them! Environment manifests enable modeling and provisioning environments with infrastructure as code.
    Please note that env init no longer automatically deploys an environment and instead generates a manifest file.

     $ cat copilot/environments/prod/manifest.yml
     # The manifest for the "prod" environment.
     # Read the full specification for the "Environment" type at:
     #  https://aws.github.io/copilot-cli/docs/manifest/environment/
    
     # Your environment name will be used in naming your resources like VPC, cluster, etc.
     name: prod
     type: Environment
    
     # Import your own VPC and subnets or configure how they should be created.
     # network:
     #   vpc:
     #     id:
    
     # Configure the load balancers in your environment, once created.
     # http:
     #   public:
     #   private:
    
     # Configure observability for your environment resources.
     observability:
     container_insights: false

    For a detailed explanation and walkthrough, see blog post.

  • A New Type of Pipeline to Manage Environment Deployment (#3751)

    Enjoy continuous delivery of environments by setting up an environment pipeline. Follow the same steps (pipeline init and pipeline deploy) that you've been using to create pipelines for services and jobs. A pipeline manifest and buildspec will be created, which you may configure and push to your source repository between the two commands.
    See blog post for more.

  • --manifest flags for svc show and env show (#3715 & #3597)

    The --manifest flag helps you generate manifest files for your existing environments, for smooth integration into Copilot's new env manifest functionality.

     $ mkdir -p copilot/environments/prod
     $ copilot env show -n prod --manifest > copilot/environments/prod/manifest.yml

    The flag also makes it easy to init new services and envs that are similar to your existing ones (that have been deployed since v1.20.0).

     $ mkdir -p copilot/second-svc
     $ copilot svc show -n first-svc --manifest env-name > copilot/second-svc/manifest.yml
    // Change the value of the `name:` field in the manifest from `first-svc` to `second-svc`
     $ copilot svc init -n second-svc
  • Configuration of Autoscaling Cooldown Periods Allowed (#3629, #3644, #3667)

    For Load Balanced, Backend, and Worker Services, configure their autoscaling fields under count to have custom cooldown periods.
    Previously, each scaling metric such as cpu_percentage had a set in cooldown of 120 secs and out cooldown of 60 seconds.
    For a detailed explanation and walkthrough, see blog post. For the specifications, see documentation.

  • New copilot env package command (#3731)

    Like the existing svc package command, this new command prints the CloudFormation stack template and configuration used to deploy your environment. You may optionally write the output to a directory or upload assets like container images and Lambda functions. Asset locations are automatically plugged into the template!

  • copilot job run (#3692)

    When you set up a scheduled job, sometimes you want to give it a test run to ensure that it works as expected, or you want to force a one-off run of your job. Now you can!

  • Denial of Default Security Group Ingress Allowed (#3682)

    Indicate in your workload manifest that you don't want to allow ingress of Copilot's default EnvironmentSecurityGroup. Find out how here!

  • You Can Now Add Permissions to Pipeline Build Role (#3709)

    By adding policies to your build role via your pipeline manifest, you'll enjoy greatly increased flexibility. Access Secrets Manager to avoid the Docker Hub pull rate limit, grab parameters from Systems Manager, pull objects down from an S3 bucket, and more!

  • Surface Exit Codes for task run (#3620)

    Copilot now forwards non-zero exit codes when tasks launched by the copilot task run --follow command fail.

  • Predictable Alias for Backend Services (#3668)

    For a backend service with an internal ALB, Copilot will create a hosted zone [env].[app].internal and insert an A record [svc].[env].[app].internal into the hosted zone that points to the internal ALB.

🐛 Bug Fixes

  • Fix Quoting of Env Vars and Secrets in task run --generate-cmd (#3702)
  • Allow Wildcard Character (*) in Aliases (#3739)
  • Don't Require Availability Zones When the VPC is Adjusted (#3745)
  • Don't Require Docker Engine for svc init When Bringing a Built Image (#3671)
  • Don't Require port Specification for Sidecar Config to Render Properly (#3666)

❤️ Contributions

Thank you, contributors!