Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(aws-ecs): Adding circuitBreaker config causes service replacement if deploymentController was not previously set #16126

Closed
madobrien opened this issue Aug 18, 2021 · 15 comments · Fixed by #22328 or #22467
Labels
@aws-cdk/aws-config Related to AWS Config @aws-cdk/aws-ecs Related to Amazon Elastic Container bug This issue is a bug. effort/small Small work item – less than a day of effort good first issue Related to contributions. See CONTRIBUTING.md p2

Comments

@madobrien
Copy link

When adding the circuitBreaker configuration to an ECS service, it automatically sets the DeploymentController to ECS in the resulting Cloudformation stack. If the deploymentController was not specified within the CDK previously, the default value of ECS is used when the service is created anyway.

Unfortunately Cloudformation sees this as a change requiring replacement of the service.

Reproduction Steps

Pre-existing service:

new FargateService(this, "Service", {
  cluster: cluster,
  taskDefinition: taskDefinition
})

Adding the circuitBreaker config:

new FargateService(this, "Service", {
  cluster: cluster,
  taskDefinition: taskDefinition,
  circuitBreaker: { enabled: true, rollback: true }
})

Deploying the above causes service replacement.

What did you expect to happen?

Expected the DeploymentController to be left undefined, since that still results in the default value of ECS being used.

What actually happened?

Upon deployment the service required replacement, which will have been disruptive due to autoscaled values not carrying across to the new service.

Ended up using escape hatches to set the circuitBreak properties without adding the DeploymentController configuration.

Environment

  • CDK CLI Version : 1.118.0
  • Framework Version: 1.118.0
  • Node.js Version: v14.15.1
  • OS : Mac OS 11.5
  • Language (Version): Typescript (4.3.3)

Other


This is 🐛 Bug Report

@madobrien madobrien added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Aug 18, 2021
@github-actions github-actions bot added @aws-cdk/aws-config Related to AWS Config @aws-cdk/aws-ecs Related to Amazon Elastic Container labels Aug 18, 2021
@jamestelfer
Copy link
Contributor

jamestelfer commented Aug 19, 2021

It seems like the PR adding circuit breaker support also added:

deploymentController: props.circuitBreaker ? {
type: DeploymentControllerType.ECS,
} : props.deploymentController,

The reasoning was that DeploymentCircuitBreaker requires the ECS deployment type, which is correct, just not necessary to add explicitly.

This addition could be removed entirely or (if it was thought valuable) replaced with a warning if a non-ECS deployment type is specified at the same time as the circuitBreaker property.

@rix0rrr
Copy link
Contributor

rix0rrr commented Aug 19, 2021

This addition could be removed entirely or (if it was thought valuable) replaced with a warning if a non-ECS deployment type is specified at the same time as the circuitBreaker property.

I love it, that's a much better behavior! We would accept a PR that does this.

@rix0rrr rix0rrr removed their assignment Aug 19, 2021
@madeline-k madeline-k removed their assignment Aug 24, 2021
@madeline-k madeline-k added p2 effort/small Small work item – less than a day of effort good first issue Related to contributions. See CONTRIBUTING.md and removed needs-triage This issue or PR still needs to be triaged. labels Aug 24, 2021
@freekii
Copy link

freekii commented Oct 8, 2021

Hi! If this is still available I would be keen to be assigned to this. Just clarifying, the preference here is to do the latter and produce a warning if a non-ECS deployment type is specified? Thanks!

@rgoltz
Copy link

rgoltz commented Aug 3, 2022

The reasoning was that DeploymentCircuitBreaker requires the ECS deployment type, which is correct, just not necessary to add explicitly.

This addition could be removed entirely or (if it was thought valuable) replaced with a warning if a non-ECS deployment type is specified at the same time as the circuitBreaker property.

Following this idea to remove the DeploymentController from CFN output generated by CDK while we are using the circuitBreaker functionality would help us to resolve a CFN drift detection issue described via aws-cloudformation/cloudformation-coverage-roadmap#1259. As stated before DeploymentController of type ECS is the default, in case it's not explicitly set in CFN.

@mergify mergify bot closed this as completed in #22328 Oct 7, 2022
mergify bot pushed a commit that referenced this issue Oct 7, 2022
…it breaker is enabled (#22328)

Fixes #16126

Copied from #16919 with review comments as it went stale and closed.

----

### All Submissions:

* [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md)

### Adding new Unconventional Dependencies:

* [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies)

### New Features

* [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)?
	* [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)?

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@github-actions
Copy link

github-actions bot commented Oct 7, 2022

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@rgoltz
Copy link

rgoltz commented Oct 7, 2022

Hi @fergusdixon + @corymhall - Please, let's cross-check & discuss following question/issue:

From my experience & testing removing the DeploymentController defintion from an existing stack/CFN output/template the Service needs a replacement - I assume that's something people should know, once the update the CDK version, which includes the new/better behaviour from PR #22328 . I've tested this with a pure CFN template: Even you define DeploymentController = ECS (which is also the CFN default, if nothing is defined) and you just remove this part from CFN template, a replacement is triggered.

This replacement becomes critical / will fail, once you define a custom/"static" ServiceName (via CDK/CFN). I assume that in this case a new CDK version with this (btw: good & helpful) fix could cause an stack-update to fail/break.

@fergusdixon
Copy link
Contributor

fergusdixon commented Oct 7, 2022

@rgoltz so should we make some sort of notice that old stacks not specifying a deployment controller, should now explicitly set one to avoid a replacement?

@rgoltz
Copy link

rgoltz commented Oct 7, 2022

@fergusdixon From my understand the old stacks just having circuitBreaker enabled (which means in the "old code", that DeploymentController = ECS getting added silently to CFN) would have issues.

In case I understood the PR in the right way, CFN output of CDK will no longer contain DeploymentController =ECS , once I just enable circuitBreaker - right? (We dropped this unnecessary conjunction)

So, updates of existing stacks (with circuitBreaker+DeploymentController defined in CFN) would run into a replacement, because the "new code" of CDK do not have DeploymentController = ECS in CFN output.

Replacement of a Service (because DeploymentController is not part of CFN anymore), would fail, if users define a Service with a own (not auto-generated) ServiceName.

@fergusdixon
Copy link
Contributor

fergusdixon commented Oct 7, 2022

@rgoltz correct, the changes in the integration tests showed this

@rgoltz
Copy link

rgoltz commented Oct 7, 2022

I've tried to create & provide a test-case:

  • ECS Service with a ServiceName set
  • based on the current CDK with: circuitBreaker silently adding DeploymentController to CFN (step1)
  • simulate CFN output without DeploymentController
// step1
// Service with circuitBreaker set/enabled + serviceName is set
    const myEcsService = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'myEcsService', {
      cluster: cluster,
      memoryLimitMiB: 2048,
      desiredCount: 1,
      cpu: 1024,
      taskSubnets: {
        subnets: selectedSubnets.subnets
      },
      loadBalancerName: `alb-${props.environment}`,
      assignPublicIp: false,
      circuitBreaker: {
        rollback: false,  
      },
      taskDefinition: myTaskDefinition,
      domainName: myDomainName,
      targetProtocol: elbv2.ApplicationProtocol.HTTPS,
      sslPolicy: elbv2.SslPolicy.FORWARD_SECRECY_TLS12_RES_GCM,
      redirectHTTP: false,
      publicLoadBalancer: false,
      recordType: ecsPatterns.ApplicationLoadBalancedServiceRecordType.CNAME,
      protocol: elbv2.ApplicationProtocol.HTTPS,
      domainZone: route53.HostedZone.fromLookup(this, 'HostedZone', {
        domainName: hostedZoneDomain,
        vpcId: this.vpc.vpcId,
        privateZone: true, 
      }),
      propagateTags: ecs.PropagatedTagSource.SERVICE,
      enableECSManagedTags: true,
      certificate: myCertificate,
      minHealthyPercent: 0,
      serviceName: serviceName,
      openListener: false,
    });

// step2
// after "inital" deployment of the service / stack (with fixed ServiceName), remove the DeploymentController from CFN output (which seems like #22328)
    const baseService = myEcsService.node.children.find(child => (child as ecs.BaseService).serviceName) as ecs.BaseService;
    (baseService.node.defaultChild! as ecs.CfnService).addPropertyDeletionOverride('DeploymentController');

I really like your PR/the fix, but following this test above (please add step2 code after the intial deployment) showning this breaking stack-updated (even "no changes" were made, just a CDK update). I think (at minimum) a warning/information for "circuitBreaker-user" needs to be added.

Since we have this setup (circuitBreaker + fixed ServiceName string), I doesn't have an idea how we should upgrade to a CDK version having this changed CFN output (regarding DeploymentController). Any ideas how to handle this for existing Services, @fergusdixon?

@fergusdixon
Copy link
Contributor

fergusdixon commented Oct 7, 2022

@rgoltz my only solution would be explicitly setting the deploymentController directly in your service. In terms of making this backwards compatible, I don't have a solution. This is my first time contributing as well as my first time using Typescript so definitely not an expert, perhaps @corymhall can weigh in?

arewa pushed a commit to arewa/aws-cdk that referenced this issue Oct 8, 2022
…it breaker is enabled (aws#22328)

Fixes aws#16126

Copied from aws#16919 with review comments as it went stale and closed.

----

### All Submissions:

* [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md)

### Adding new Unconventional Dependencies:

* [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies)

### New Features

* [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)?
	* [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)?

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
mergify bot pushed a commit that referenced this issue Oct 10, 2022
…hen circuit breaker is enabled (#22328)" (#22418)

This reverts commit 635129c.

Per comment #16126 (comment) this will introduce a breaking change.

----

### All Submissions:

* [ ] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md)

### Adding new Unconventional Dependencies:

* [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies)

### New Features

* [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)?
	* [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)?

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@fergusdixon
Copy link
Contributor

@corymhall @rgoltz do you have any suggestions on how to implement this in a backwards compatible way?

@fergusdixon
Copy link
Contributor

@rgoltz @corymhall please see backwards-compatible attempt #22467

brighid-bot added a commit to cythral/brighid-commands that referenced this issue Oct 13, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [Amazon.CDK.Lib](https://togithub.com/aws/aws-cdk) | nuget | minor |
`2.45.0` -> `2.46.0` |

---

### Release Notes

<details>
<summary>aws/aws-cdk</summary>

### [`v2.46.0`](https://togithub.com/aws/aws-cdk/releases/v2.46.0)

##### Features

- **aws-certificatemanager:** Add ability to specify the certificate
name ([#&#8203;22301](https://togithub.com/aws/aws-cdk/issues/22301))
([614ba92](https://togithub.com/aws/aws-cdk/commit/614ba92ba77e29c10ea4642a64e5b50b5dc775b8))
- **aws-ec2:** add metadata options support for launchTemplate construct
([#&#8203;22312](https://togithub.com/aws/aws-cdk/issues/22312))
([9297bd0](https://togithub.com/aws/aws-cdk/commit/9297bd04884ebd05888fd14121256329dac82b43))
- **cfnspec:** cloudformation spec v92.0.0
([#&#8203;22435](https://togithub.com/aws/aws-cdk/issues/22435))
([064a1a6](https://togithub.com/aws/aws-cdk/commit/064a1a650c6f26d6a3087a8d39971ba33413d8ce))
- **cloudfront-origins:** allow setting a user defined origin id
([#&#8203;22349](https://togithub.com/aws/aws-cdk/issues/22349))
([239215f](https://togithub.com/aws/aws-cdk/commit/239215fb8ceb4df5cd67669ad5daca39fb65543f)),
closes [#&#8203;2756](https://togithub.com/aws/aws-cdk/issues/2756)
- **ec2:** adds persist option to user data on windows instances
([#&#8203;21709](https://togithub.com/aws/aws-cdk/issues/21709))
([cb1506f](https://togithub.com/aws/aws-cdk/commit/cb1506f090e36a6da78b8a8a1edf9a1256478311))
- **sns:** topic name with `.fifo` suffix generated automatically
([#&#8203;22375](https://togithub.com/aws/aws-cdk/issues/22375))
([ba201cf](https://togithub.com/aws/aws-cdk/commit/ba201cf1d9768f9ac5d3328ec425bf566f088a16)),
closes [#&#8203;18740](https://togithub.com/aws/aws-cdk/issues/18740)
- **sqs:** add enforceSSL property to enforce encryption of data in
transit ([#&#8203;22363](https://togithub.com/aws/aws-cdk/issues/22363))
([f1886cf](https://togithub.com/aws/aws-cdk/commit/f1886cf82c50abc4e419f1450abfc3df0c5b0324))

##### Bug Fixes

- **apigateway:** cannot create an ApiKey with an imported RestApi
([#&#8203;22368](https://togithub.com/aws/aws-cdk/issues/22368))
([83c4123](https://togithub.com/aws/aws-cdk/commit/83c4123273fda2a2e349b55f1e50d5afa1c7dd9d)),
closes [#&#8203;22102](https://togithub.com/aws/aws-cdk/issues/22102)
- **apigateway:** CORS OPTIONS method should not require auth
([#&#8203;22402](https://togithub.com/aws/aws-cdk/issues/22402))
([ef72089](https://togithub.com/aws/aws-cdk/commit/ef72089d7cdf5dbaa1f172eecd29ee525f650b32)),
closes [#&#8203;8615](https://togithub.com/aws/aws-cdk/issues/8615)
- **core:** asset bundling skipped when using --exclusively with custom
stack name
([#&#8203;21248](https://togithub.com/aws/aws-cdk/issues/21248))
([209ddea](https://togithub.com/aws/aws-cdk/commit/209ddea44744509d74a080fdbd31cbb978fc8a96)),
closes
[/github.com/aws/aws-cdk/issues/19927#issuecomment-1189916912](https://togithub.com/aws//github.com/aws/aws-cdk/issues/19927/issues/issuecomment-1189916912)
- some custom resources don't work in opt-in regions
([#&#8203;22370](https://togithub.com/aws/aws-cdk/issues/22370))
([456a2c7](https://togithub.com/aws/aws-cdk/commit/456a2c75881fe8df3803db3787b48f8d9f97f09e)),
closes [#&#8203;22022](https://togithub.com/aws/aws-cdk/issues/22022)
- **cli:** state machine hotswap fails if the `DependsOn` change
([#&#8203;22396](https://togithub.com/aws/aws-cdk/issues/22396))
([0d44db2](https://togithub.com/aws/aws-cdk/commit/0d44db2c211204b85002342ce758aca0552e851c))
- **core:** Custom Resource type length validation
([#&#8203;22118](https://togithub.com/aws/aws-cdk/issues/22118))
([c186e2d](https://togithub.com/aws/aws-cdk/commit/c186e2ddcffb25647b971ba1b90faa850552d219))
- **custom-resources:** provider can fail if S3 has brown-outs
([#&#8203;22362](https://togithub.com/aws/aws-cdk/issues/22362))
([cdedf60](https://togithub.com/aws/aws-cdk/commit/cdedf606277f50a2f7e20b09560f6e14b11bbc19))
- **ec2:** cannot deploy SecurityGroup with allowAllIpv6Outbound
([#&#8203;22414](https://togithub.com/aws/aws-cdk/issues/22414))
([bb16d97](https://togithub.com/aws/aws-cdk/commit/bb16d9729daea2702b32df81fc8259b0afd652fa)),
closes [#&#8203;22407](https://togithub.com/aws/aws-cdk/issues/22407)
- **ecs:** removed explicit addition of ecs deployment type when circuit
breaker is enabled
([#&#8203;22328](https://togithub.com/aws/aws-cdk/issues/22328))
([635129c](https://togithub.com/aws/aws-cdk/commit/635129ca95313afef7b3d8fc62d077afbfd0c088)),
closes [#&#8203;16126](https://togithub.com/aws/aws-cdk/issues/16126)
[#&#8203;16919](https://togithub.com/aws/aws-cdk/issues/16919)
- half-written asset zips can be uploaded if process is interrupted
([#&#8203;22393](https://togithub.com/aws/aws-cdk/issues/22393))
([2ed006e](https://togithub.com/aws/aws-cdk/commit/2ed006e50b15dfca96395d442ccee648abdbb374)),
closes [#&#8203;18459](https://togithub.com/aws/aws-cdk/issues/18459)

##### Reverts

- "fix(ecs): removed explicit addition of ecs deployment type when
circuit breaker is enabled
([#&#8203;22328](https://togithub.com/aws/aws-cdk/issues/22328))"
([#&#8203;22418](https://togithub.com/aws/aws-cdk/issues/22418))
([0f002e2](https://togithub.com/aws/aws-cdk/commit/0f002e2009bbab2e10c08cdf908c5091ba61b754)),
closes
[/github.com/aws/aws-cdk/issues/16126#issuecomment-1271626957](https://togithub.com/aws//github.com/aws/aws-cdk/issues/16126/issues/issuecomment-1271626957)

***

#### Alpha modules (2.46.0-alpha.0)

##### Features

- **integ-tests:** add ability to `wait` for assertions to pass
([#&#8203;22335](https://togithub.com/aws/aws-cdk/issues/22335))
([700f9c4](https://togithub.com/aws/aws-cdk/commit/700f9c4d465684b784f50ec74e897c9031a639c5))
- **integ-tests:** allow for user provided assertions stack
([#&#8203;22404](https://togithub.com/aws/aws-cdk/issues/22404))
([39089f5](https://togithub.com/aws/aws-cdk/commit/39089f5eabc61c2a546391742ff2cf906f8e0f8b))
- **synthetics:** new runtime synthetics nodejs puppeteer 3 6
([#&#8203;22374](https://togithub.com/aws/aws-cdk/issues/22374))
([e0c0b56](https://togithub.com/aws/aws-cdk/commit/e0c0b56dded26a897dc6243298947bd4e69321b2))

##### Bug Fixes

- **appsync:** can not use Tokens in the name of a DataSource
([#&#8203;22378](https://togithub.com/aws/aws-cdk/issues/22378))
([511eb79](https://togithub.com/aws/aws-cdk/commit/511eb79cba734bcd9e013d5dfbf262c75a522f09)),
closes [#&#8203;18900](https://togithub.com/aws/aws-cdk/issues/18900)
- **aws-lambda-python:** export poetry dependencies without hashes
([#&#8203;22351](https://togithub.com/aws/aws-cdk/issues/22351))
([76482f6](https://togithub.com/aws/aws-cdk/commit/76482f6847a46806c1a309d2f9335a3d6e838fc6)),
closes [#&#8203;14201](https://togithub.com/aws/aws-cdk/issues/14201)
[#&#8203;19232](https://togithub.com/aws/aws-cdk/issues/19232)
- **lambda-python:** commands run non-sequentially on Graviton when
building container image
([#&#8203;22398](https://togithub.com/aws/aws-cdk/issues/22398))
([e427fd6](https://togithub.com/aws/aws-cdk/commit/e427fd6f4a186784e345b8f88424d74c004f1e5a)),
closes [#&#8203;22012](https://togithub.com/aws/aws-cdk/issues/22012)

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click
this checkbox.

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).
brighid-bot added a commit to cythral/brighid-discord-adapter that referenced this issue Oct 13, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [Amazon.CDK.Lib](https://togithub.com/aws/aws-cdk) | nuget | minor |
`2.45.0` -> `2.46.0` |

---

### Release Notes

<details>
<summary>aws/aws-cdk</summary>

### [`v2.46.0`](https://togithub.com/aws/aws-cdk/releases/v2.46.0)

##### Features

- **aws-certificatemanager:** Add ability to specify the certificate
name ([#&#8203;22301](https://togithub.com/aws/aws-cdk/issues/22301))
([614ba92](https://togithub.com/aws/aws-cdk/commit/614ba92ba77e29c10ea4642a64e5b50b5dc775b8))
- **aws-ec2:** add metadata options support for launchTemplate construct
([#&#8203;22312](https://togithub.com/aws/aws-cdk/issues/22312))
([9297bd0](https://togithub.com/aws/aws-cdk/commit/9297bd04884ebd05888fd14121256329dac82b43))
- **cfnspec:** cloudformation spec v92.0.0
([#&#8203;22435](https://togithub.com/aws/aws-cdk/issues/22435))
([064a1a6](https://togithub.com/aws/aws-cdk/commit/064a1a650c6f26d6a3087a8d39971ba33413d8ce))
- **cloudfront-origins:** allow setting a user defined origin id
([#&#8203;22349](https://togithub.com/aws/aws-cdk/issues/22349))
([239215f](https://togithub.com/aws/aws-cdk/commit/239215fb8ceb4df5cd67669ad5daca39fb65543f)),
closes [#&#8203;2756](https://togithub.com/aws/aws-cdk/issues/2756)
- **ec2:** adds persist option to user data on windows instances
([#&#8203;21709](https://togithub.com/aws/aws-cdk/issues/21709))
([cb1506f](https://togithub.com/aws/aws-cdk/commit/cb1506f090e36a6da78b8a8a1edf9a1256478311))
- **sns:** topic name with `.fifo` suffix generated automatically
([#&#8203;22375](https://togithub.com/aws/aws-cdk/issues/22375))
([ba201cf](https://togithub.com/aws/aws-cdk/commit/ba201cf1d9768f9ac5d3328ec425bf566f088a16)),
closes [#&#8203;18740](https://togithub.com/aws/aws-cdk/issues/18740)
- **sqs:** add enforceSSL property to enforce encryption of data in
transit ([#&#8203;22363](https://togithub.com/aws/aws-cdk/issues/22363))
([f1886cf](https://togithub.com/aws/aws-cdk/commit/f1886cf82c50abc4e419f1450abfc3df0c5b0324))

##### Bug Fixes

- **apigateway:** cannot create an ApiKey with an imported RestApi
([#&#8203;22368](https://togithub.com/aws/aws-cdk/issues/22368))
([83c4123](https://togithub.com/aws/aws-cdk/commit/83c4123273fda2a2e349b55f1e50d5afa1c7dd9d)),
closes [#&#8203;22102](https://togithub.com/aws/aws-cdk/issues/22102)
- **apigateway:** CORS OPTIONS method should not require auth
([#&#8203;22402](https://togithub.com/aws/aws-cdk/issues/22402))
([ef72089](https://togithub.com/aws/aws-cdk/commit/ef72089d7cdf5dbaa1f172eecd29ee525f650b32)),
closes [#&#8203;8615](https://togithub.com/aws/aws-cdk/issues/8615)
- **core:** asset bundling skipped when using --exclusively with custom
stack name
([#&#8203;21248](https://togithub.com/aws/aws-cdk/issues/21248))
([209ddea](https://togithub.com/aws/aws-cdk/commit/209ddea44744509d74a080fdbd31cbb978fc8a96)),
closes
[/github.com/aws/aws-cdk/issues/19927#issuecomment-1189916912](https://togithub.com/aws//github.com/aws/aws-cdk/issues/19927/issues/issuecomment-1189916912)
- some custom resources don't work in opt-in regions
([#&#8203;22370](https://togithub.com/aws/aws-cdk/issues/22370))
([456a2c7](https://togithub.com/aws/aws-cdk/commit/456a2c75881fe8df3803db3787b48f8d9f97f09e)),
closes [#&#8203;22022](https://togithub.com/aws/aws-cdk/issues/22022)
- **cli:** state machine hotswap fails if the `DependsOn` change
([#&#8203;22396](https://togithub.com/aws/aws-cdk/issues/22396))
([0d44db2](https://togithub.com/aws/aws-cdk/commit/0d44db2c211204b85002342ce758aca0552e851c))
- **core:** Custom Resource type length validation
([#&#8203;22118](https://togithub.com/aws/aws-cdk/issues/22118))
([c186e2d](https://togithub.com/aws/aws-cdk/commit/c186e2ddcffb25647b971ba1b90faa850552d219))
- **custom-resources:** provider can fail if S3 has brown-outs
([#&#8203;22362](https://togithub.com/aws/aws-cdk/issues/22362))
([cdedf60](https://togithub.com/aws/aws-cdk/commit/cdedf606277f50a2f7e20b09560f6e14b11bbc19))
- **ec2:** cannot deploy SecurityGroup with allowAllIpv6Outbound
([#&#8203;22414](https://togithub.com/aws/aws-cdk/issues/22414))
([bb16d97](https://togithub.com/aws/aws-cdk/commit/bb16d9729daea2702b32df81fc8259b0afd652fa)),
closes [#&#8203;22407](https://togithub.com/aws/aws-cdk/issues/22407)
- **ecs:** removed explicit addition of ecs deployment type when circuit
breaker is enabled
([#&#8203;22328](https://togithub.com/aws/aws-cdk/issues/22328))
([635129c](https://togithub.com/aws/aws-cdk/commit/635129ca95313afef7b3d8fc62d077afbfd0c088)),
closes [#&#8203;16126](https://togithub.com/aws/aws-cdk/issues/16126)
[#&#8203;16919](https://togithub.com/aws/aws-cdk/issues/16919)
- half-written asset zips can be uploaded if process is interrupted
([#&#8203;22393](https://togithub.com/aws/aws-cdk/issues/22393))
([2ed006e](https://togithub.com/aws/aws-cdk/commit/2ed006e50b15dfca96395d442ccee648abdbb374)),
closes [#&#8203;18459](https://togithub.com/aws/aws-cdk/issues/18459)

##### Reverts

- "fix(ecs): removed explicit addition of ecs deployment type when
circuit breaker is enabled
([#&#8203;22328](https://togithub.com/aws/aws-cdk/issues/22328))"
([#&#8203;22418](https://togithub.com/aws/aws-cdk/issues/22418))
([0f002e2](https://togithub.com/aws/aws-cdk/commit/0f002e2009bbab2e10c08cdf908c5091ba61b754)),
closes
[/github.com/aws/aws-cdk/issues/16126#issuecomment-1271626957](https://togithub.com/aws//github.com/aws/aws-cdk/issues/16126/issues/issuecomment-1271626957)

***

#### Alpha modules (2.46.0-alpha.0)

##### Features

- **integ-tests:** add ability to `wait` for assertions to pass
([#&#8203;22335](https://togithub.com/aws/aws-cdk/issues/22335))
([700f9c4](https://togithub.com/aws/aws-cdk/commit/700f9c4d465684b784f50ec74e897c9031a639c5))
- **integ-tests:** allow for user provided assertions stack
([#&#8203;22404](https://togithub.com/aws/aws-cdk/issues/22404))
([39089f5](https://togithub.com/aws/aws-cdk/commit/39089f5eabc61c2a546391742ff2cf906f8e0f8b))
- **synthetics:** new runtime synthetics nodejs puppeteer 3 6
([#&#8203;22374](https://togithub.com/aws/aws-cdk/issues/22374))
([e0c0b56](https://togithub.com/aws/aws-cdk/commit/e0c0b56dded26a897dc6243298947bd4e69321b2))

##### Bug Fixes

- **appsync:** can not use Tokens in the name of a DataSource
([#&#8203;22378](https://togithub.com/aws/aws-cdk/issues/22378))
([511eb79](https://togithub.com/aws/aws-cdk/commit/511eb79cba734bcd9e013d5dfbf262c75a522f09)),
closes [#&#8203;18900](https://togithub.com/aws/aws-cdk/issues/18900)
- **aws-lambda-python:** export poetry dependencies without hashes
([#&#8203;22351](https://togithub.com/aws/aws-cdk/issues/22351))
([76482f6](https://togithub.com/aws/aws-cdk/commit/76482f6847a46806c1a309d2f9335a3d6e838fc6)),
closes [#&#8203;14201](https://togithub.com/aws/aws-cdk/issues/14201)
[#&#8203;19232](https://togithub.com/aws/aws-cdk/issues/19232)
- **lambda-python:** commands run non-sequentially on Graviton when
building container image
([#&#8203;22398](https://togithub.com/aws/aws-cdk/issues/22398))
([e427fd6](https://togithub.com/aws/aws-cdk/commit/e427fd6f4a186784e345b8f88424d74c004f1e5a)),
closes [#&#8203;22012](https://togithub.com/aws/aws-cdk/issues/22012)

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click
this checkbox.

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).
@mergify mergify bot closed this as completed in #22467 Nov 9, 2022
mergify bot pushed a commit that referenced this issue Nov 9, 2022
…feature flag) (#22467)

Fixes #16126

Copied from #16919 with review comments as it went stale and closed.
Initial implementation #22328 reverted because it was not backward compatible.

Introduces feature flag:

* `@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker`

Enable this feature flag to avoid setting the "ECS" deployment controller when adding a circuit breaker to an
ECS Service, as this will trigger a full replacement which fails to deploy when using set service names.
This does not change any behaviour as the default deployment controller when it is not defined is ECS.

_cdk.json_

```json
{
  "context": {
    "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true
  }
}
```

----

### All Submissions:

* [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md)

### Adding new Unconventional Dependencies:

* [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies)

### New Features

* [x] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)?
	* [x] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)?

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@github-actions
Copy link

github-actions bot commented Nov 9, 2022

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

homakk pushed a commit to homakk/aws-cdk that referenced this issue Dec 1, 2022
…it breaker is enabled (aws#22328)

Fixes aws#16126

Copied from aws#16919 with review comments as it went stale and closed.

----

### All Submissions:

* [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md)

### Adding new Unconventional Dependencies:

* [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies)

### New Features

* [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)?
	* [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)?

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@shellscape
Copy link

@madobrien did the association PR with the disableExplicitDeploymentControllerForCircuitBreaker flag fix your issue? we're testing it here without success

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment