As of this notice, using CHANGELOG.md is DEPRECATED. We will be using GitHub Releases for this repository
- Upgrade internal provider dependencies to fix firewall prompts #962
- Add multi-lang component support scaffolding.
- Fix type errors in TypeScript checking awsx-classic properties.
- Ensure that FargateService and EC2Service default
continueBeforeSteadyState
to false. - Make networkMode property usable for
ecs.Ec2TaskDefinition
. - Add optional
assignPublicIp
input property to FargateService and default it to non-public #936. - Add a new
DefaultTargetGroupPort
input property tolb.ApplicationLoadBalancer
andlb.NetworkLoadBalancer
to provide a top-level way to set the default target group's port. - Change the behavior of
ecs.FargateTaskDefinition
andecs.EC2TaskDefinition
to always respect the passed-inhostPort
, regardless of the target group's port. - Python: Bump the min required version of
pulumi
PyPi package to 3.47.2.
- Compatibility with pulumi-aws v5.0.0
- Introduce
requestedAvailabilityZone
onec2.vps.VpcArgs
that takesnumber | "all" | string[]
, to allow specific zones for creating a VPC. - Extend the
volumeSize
of the default root block device in ECS autoscaling launch configuration to 32 GB to accomodate the latest default AMI snapshot size - Fix spelling mistakes in the typescript
cidr
andvpc
types.
- Fix a bug that prevented
elasticloadbalancingv2.NetworkLoadBalancer
from using explicitly providedsubnetMappings
. - Support multiple load balancing listeners per container #698
- Update
ecs.Container
interface to includeenvironmentFile
- Add support for Billing CloudWatch metrics and alarms
- Add support for ECS Service Circuit Breaker and Execute Command
- Use
aws.ec2.getAmi()
instead of deprecatedaws.getAmi()
- Upgrade to @pulumi/[email protected] and @pulumi/[email protected]
- Add additional StorageTypes to
awsx.s3.metrics
- Add missing
HEAD
value toawsx.apigateway.Method
- Create
CapacityProviderService
to make it possible to use capacity provider strategies solving #599. - Ensure that
awsx.apigateway.APIArgs
RestApiArgs
reflect the underlying pulumi-aws library - Upgrade to Go1.16
- Add support for
GENEVE
,UDP
andTCP_UDP
inawsx.lb.TargetGroup
Protocols - Add support for
AlarmWidget
inawsx.cloudwatch
- Allow passing of
forceNewDeployment
toecs.FargateService
andecs.Ec2Service
- Allow the user to pass their own logging configuration to a TaskDefinition #625
- (Breaking) Update the default task role in
ecs.TaskDefinition
to use the more scoped downLambdaFullAccess
policy (the new one that AWS recommends). As this significantly reduces the scope for the task definition, users may need to attach additional policies if their task needs access to specific AWS services. - (Breaking) Update the peer dependency for
@pulumi/aws
to ^3.25.1 so that callback functions will create a copy of the deprecated policy if necessary. - (Breaking) Replaced deprecated
AmazonEC2ContainerServiceFullAccess
policy withAmazonECS_FullAccess
. Note that this is a breaking change as now only@pulumi/aws
^3.22.0 can act as a peer dependency whereas previous versions of this library allowed@pulumi/aws
versions 1.x and 2.x. #624 - Allow the user to pass
TargetGroup
asactions
ofListenerRule
. #503 - Add support for
proxyConfiguration
toawsx.ecs.FargateTaskDefinition
andawsx.ecs.EC2TaskDefinition
. - Create an explicit
RestApiPolicy
if a policy is specified withrestApiArgs
inawsx.apigateway.API
.
- Ensure API Gateway static routes use POSIX paths. File paths with '\' are transformed to '/' when uploaded. #581
- Add
cloudtrail.Trail
component which can generate the required roles and bucket for a CloudTrail. - Update
lb.NetworkTargetGroupHealthCheck
to allow forpath
andmatcher
properties. - Update ECS types #616
- Allow an existing
aws.lb.TargetGroup
to be passed toawsx.lb.TargetGroup
. - Allow an existing
aws.lb.Listener
to be passed toawsx.lb.Listener
. - Update
awsx.apigateway.API
to support IAM Authorization on routes. - Upgrade to
pulumi-aws
v3.0.0
- Update
Metric
to support the latest@pulumi/aws
resource shape. This is a breaking change that narrows the type ofdimensions
from allowing[key: string]: any
to[key: string]: string
. - Allow an existing
aws.lb.LoadBalancer
to be passed toawsx.lb.LoadBalancer
.
- Update dependencies to be peer dependencies and allow both 1.x and 2.x for
@pulumi/pulumi
,@pulumi/aws
.
- Update
Service
,EC2Service
andFargateService
interface to support the full set of supported ECS Service properties - Ensure
CustomResourceOptions
are passed to underlyingecs.Service
when usingawsx.ecs.FargateService
andawsx.ecs.EC2Service
- Update
TaskDefinitionArgs
,EC2TaskDefinitionArgs
,FargateTaskDefinitionArgs
to allow for null taskRole, executionRole, and logGroup attributes. - Fix bug in
TaskDefinition
whenexecutionRole
is ignored whentaskRole
isnull
. #517
-
Add support for
FirelensConfiguration
toecs.Container
. #496 -
Explicitly require
@pulumi/pulumi@>=1.9.1
as it contains an API that awsx depends on. #492
-
Account for all scenarios where an API Gateway REST API should be redeployed. For more details see: #485.
This will cause all existing
awsx.apigateway.API
s to be redeployed. However, these resources are safe to redeploy with zero downtime, so existing stacks should not be negatively affected.
- Due the necessity to perform many async operations during creation, many parts of an [awsx.ec2.Vpc] have become asynchronous. This change should not require code changes in most projects. However, there may be some code changes needed. For more details see: #470.
- The deprecated awsx.Cluster and awsx.Network type (deprecated in 0.18.6) have been removed. Code
that uses these types should migrate to
awsx.ecs.Cluster
andawsx.ec2.Vpc
respectively.
- Allow the user to pass
family
to theecs.TaskDefinition
- Update
Container
interface to support the full set of supported ECS container properties
-
Added a simpler way to create a load balanced (NLB or ALB)
aws.ecs.EC2Service
orawsx.ecs.FargateService
-
Added
secrets
property toawsx.ecs.Container
to allow injecting sensitive data into a container.
- Added options to customize the Deployment, RestApi or Stage produced by an awsx.apigateway.API.
-
Allow passing
ignoreChanges
intoSubnet
s created as part of anawsx.ec2.Vpc
. -
Updated
@pulumi/awsx
to use the latest versions of@pulumi/pulumi
and@pulumi/aws
.
- Updated
@pulumi/awsx
to use the latest version of@pulumi/docker
.
- Updated
@pulumi/awsx
to use the latest versions of@pulumi/pulumi
and@pulumi/aws
.
- ecs.TaskDefinition now accepts explicit
null
value for.logGroup
,.taskRole
and.executionRole
to explicitly opt out using or creating any default resources for them. - The
elasticloadbalancingv2
module has been renamed to align with its@pulumi/aws
equivalent. The existing module is still available, but will be deprecated and removed in the future. 'Aliases' have been used to ensure that moving to the new modules will not result in any changes to existing resources.
- LoadBalancers and TargetGroups will no longer create resources with 'hashed' names. They will instead use the name provided (like nearly all other resources do). To prevent impact on existing stacks, aliases have been provided to ensure proper tracking of the resources.
- awsx.autoscaling.AutoScalingLaunchConfiguration can be passed an explicit imageId instead of only using and ecs-specific image name.
- Specific cidr-blocks and availability zone locations can be provided for awsx.ec2.Vpc subnets.
- FargateService will respect
subnets
explicitly passed in (fixes #360).
-
Many awsx components were both not parented properly and also did not correctly pass 'provider' information along. For programs not explicitly passing a 'provider' along, this normally was not an issue. However, programs that did want to use an explicit 'provider' (for example, to set a particular region for a resource), would commonly run into issues. We tried to broadly fix these issues, while doing so in a way that should hopefully not have any impact on any existing stacks. Specifically, the 'aliases' feature was used so that while we may have reparented some resources, pulumi will know that that is just a representation change, and shouldn't cause any actual resources to be created/deleted. If you see otherwise, please let us know.
The specific resources/apis affected are:
-
Lambda authorizers will now be parented by the
awsx.apigateway.Api
they are created for. -
awsx.apigateway.Api
static routes will properly work when using a different provider (previously it wouldn't place the static route in the corresponding region for the provider). -
awsx.apigateway.Api
UsagePlans/UsagePlanKeys now properly pass along a provider. -
awsx.autoscaling.AutoScalingGroup
now properly passes along a provider. -
The
LaunchConfiguration
for anAutoScalingGroup
will now be parented by theAutoScalingGroup
-
awsx.cloudwatch.Dashboard
now properly passes along a provider. -
The underlying
aws.ec2.Vpc
is now parented to theawsx.ec2.Vpc
that created it. -
awsx.ec2.Vpc.getDefault
has changed behavior. It now takes in options that allow a provider to be passed in. This provider is used to determine which region to lookup the default Vpc in. Note: when this function is called multiple times it will return the same Vpc instance if for the same region. -
awsx.ec2.Vpc.getDefault
will now return Vpcs with the namedefault-<actual vpc id>
. An existing default vpc with the namedefault-vpc
will be aliased to this new name. -
Subnets created by
awsx.ec2.Vpc
will be parented to the Vpc now. -
The InternetGateway and NatGateways created by
Vpc.fromExistingIds
will now be parented to the Vpc. -
awsx.ecr.LifeCyclePolicy
is now parented by theaws.ecr.Repository
it is created for. -
awsx.ecs.Service/TaskDefinition
now respect providers. -
awsx.elasticloadbalancingv2.ApplicationListener/ApplicationTargetGroup/NetworkListener/NetworkTargetGroup
will now all be parented by their respectiveLoadBalancer
by default if a parent is not specified. -
The type name of an
awsx.elasticloadbalancingv2.ListenerRule
has been fixed.
-
- awsx.ecs.Cluster can be created from an existing aws.ecs.Cluster's id.
- Add OPTIONS as a valid method and add ability to set custom gateway responses for [awsx.apigateway.API].
- Load balancing targets can now be simply added to an ALB, NLB, Listener or TargetGroup using the
new
.attachTarget
methods on the respective classes.
-
An
awsx.ec2.Vpc
withassignGeneratedIpv6CidrBlock: true
will now setassignIpv6AddressOnCreation: true
by default for child subnets. This can be overridden by setting that value explicitly tofalse
with the subnet's args. -
awsx.Cluster
andawsx.Network
are now deprecated and will no longer receive future changes. Code that uses these types should migrate toawsx.ecs.Cluster
andawsx.ec2.Vpc
respectively.
- VPCs can now be made which scale to use all availability zones in a region if desired. Use
new awsx.ec2.Vpc("name", { numberOfAvailabilityZones: "all" })
to get this behavior. IfnumberOfAvailabilityZones
is not provided, the current behavior of defaulting to 2 availability zones remains. - Externally available application listeners will now open their security group to both ingress and egress for their specified port.
- Tweaked API.getFunction to allow [route] and [method] parameters to be optional. Also changed function to throw if passed arguments that don't map to an actual function.
- awsx.cloudwatch.Dashboard now exports a
url
property that gives you an immediate link to the Dashboard.
- ApiGateway now provides control over the backing s3.Bucket created for
StaticRoute
s. This is useful for SinglePageApp scenarios that want to control relevant Bucket values likeerrorDocument
orindexDocument
. - A new
ecr
module has been created, simplifying creation ofecr.Repository
s andecr.LifecyclePolicy
s.
- Add support for Authorizers, API Keys and Request Validation to Integration Routes in API Gateway
- Adds a new set of APIs for defining and CloudWatch metrics and creating alarms from them. See [awsx.cloudwatch.Metric] for more details, and see [awsx.lambda.metrics.duration] as an example of a newly exposed easy-to-use metric.
- Dashboards can easily be created from the above [awsx.cloudwatch.Metric] objects using the new [awsx.cloudwatch.Dashboard] helper. See here for an example.
- [awsx.autoscaling.AutoScalingGroup]s can now easily have a scheduling action provided by using the new [AutoScalingGroup.createSchedule] instance method.
- [awsx.autoscaling.AutoScalingGroup]s can now easily scale based on an [aws.cloudwatch.Metric] or based on some preexisting well-known metrics. See the new [AutoScalingGroup.scaleToTrackXXX] instance methods. Amazon EC2 Auto Scaling creates and manages the CloudWatch alarms that trigger the scaling policy and calculates the scaling adjustment based on the metric and the target value. The scaling policy adds or removes capacity as required to keep the metric at, or close to, the specified target value.
- Step-Scaling-Policies can easily be added for [awsx.autoscaling.AutoScalingGroup]s. All you need to do is provide an appropriate metric and simple information about where your scale-out and scale-in steps should begin and the [AutoScalingGroup] will create the appropriate policies and [cloudwatch.MetricAlarm]s to trigger those policies. See the new [AutoScalingGroup.scaleInSteps] instance method.
- TypeScript typings for awsx.apigateway.API have been updated to be more accurate.
- Application LoadBalancers/Listeners/TargetGroups will now create a default SecurityGroup for their LoadBalancer if none is provided.
- Added easier convenience methods overloads on an awsx.ec2.SecurityGroup to make ingress/egress rules.
- Add TypeScript documentation on API Gateway's Integration Route and Raw Data Route
- Add support for Lambda Authorizers and Cognito Authorizer and API Keys for API Gateway in TypeScripts
-
Moves to the new 0.18.0 version of
@pulumi/aws
. Version 0.18.0 ofpulumi-aws
is now based on v2.2.0 of the AWS Terraform Provider, which has a variety of breaking changes from the previous version. See documentation in@pulumi/aws
repo for more details. -
Add support for request parameter validation to API Gateway as well as documentation
- awsx.ec2.Subnets created for a VPC will have a unique
name: VpcName-SubnetType-Index
entry provided for them in their tags. This can help distinguish things when there are many subnets created in a vpc. - NatGateways created as part of creating private subnets in an awsx.ec2.VPC will now be parented by the VPC.
- Fixes issue where computation of Fargate Memory/CPU requirements was not being done properly.
- Fixes issue where VPC might fail to create because tags could not be set on its EIPs.
- Fixes issue where creating an ApplicationListener would fail with an error of: "description" cannot be longer than 255 characters
Updating to v0.17.0 version of @pulumi/pulumi
. This is an update that will not play nicely
in side-by-side applications that pull in prior versions of this package.
See https://github.com/pulumi/pulumi/commit/7f5e089f043a70c02f7e03600d6404ff0e27cc9d for more details.
As such, we are rev'ing the minor version of the package from 0.16 to 0.17. Recent version of pulumi
will now detect, and warn, if different versions of @pulumi/pulumi
are loaded into the same application. If you encounter this warning, it is recommended you move to versions of the @pulumi/...
packages that are compatible. i.e. keep everything on 0.16.x until you are ready to move everything to 0.17.x.
- Supply easy mechanisms to add Internet and NAT gateways to a VPC.
- Change awsx.elasticloadbalancingv2.Listener.endpoint from a method to a property.
- Change awsx.apigateway.ProxyRoute.target to be a richer type to allow extensibility.
- Allow awsx.elasticloadbalancingv2.NetworkListener to be used as ProxyRoute.target to simply incoming APIGateway routes to a NetworkListener endpoint.
- Add support for arbitrary APIGateway integration routes (i.e. to any supported aws service). Note: this comes with a small breaking change where the names of some apigateway types have changed from ProxyXXX to IntegrationXXX.
- Require at least version 0.16.14 of @pulumi/pulumi, in order to support the
deleteBeforeReplace
option and improve handling of delete-before-replace.
- Renamed 'aws-infra' package to 'awsx'.
- Moved
aws.apigateway.x.Api
from@pulumi/aws
into this package under the nameawsx.apigateway.Api
.
- Experimental abstractions have been promoted to supported abstractions. see new modules for:
- autoscaling
- ec2
- ecs
- elasticloadbalancingv2
- Add some experimental abstractions for Services and Tasks in the
experimental
module.
- Fix an issue where passing a cluster to another component would fail in some cases.