-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Comments
It seems like the PR adding circuit breaker support also added: aws-cdk/packages/@aws-cdk/aws-ecs/lib/base/base-service.ts Lines 412 to 414 in f2d77d3
The reasoning was that 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 |
I love it, that's a much better behavior! We would accept a PR that does this. |
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! |
Following this idea to remove the |
…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*
|
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. |
@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? |
@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. |
@rgoltz correct, the changes in the integration tests showed this |
I've tried to create & provide a test-case:
// 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? |
@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? |
…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*
…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*
@corymhall @rgoltz do you have any suggestions on how to implement this in a backwards compatible way? |
@rgoltz @corymhall please see backwards-compatible attempt #22467 |
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 ([#​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 ([#​22312](https://togithub.com/aws/aws-cdk/issues/22312)) ([9297bd0](https://togithub.com/aws/aws-cdk/commit/9297bd04884ebd05888fd14121256329dac82b43)) - **cfnspec:** cloudformation spec v92.0.0 ([#​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 ([#​22349](https://togithub.com/aws/aws-cdk/issues/22349)) ([239215f](https://togithub.com/aws/aws-cdk/commit/239215fb8ceb4df5cd67669ad5daca39fb65543f)), closes [#​2756](https://togithub.com/aws/aws-cdk/issues/2756) - **ec2:** adds persist option to user data on windows instances ([#​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 ([#​22375](https://togithub.com/aws/aws-cdk/issues/22375)) ([ba201cf](https://togithub.com/aws/aws-cdk/commit/ba201cf1d9768f9ac5d3328ec425bf566f088a16)), closes [#​18740](https://togithub.com/aws/aws-cdk/issues/18740) - **sqs:** add enforceSSL property to enforce encryption of data in transit ([#​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 ([#​22368](https://togithub.com/aws/aws-cdk/issues/22368)) ([83c4123](https://togithub.com/aws/aws-cdk/commit/83c4123273fda2a2e349b55f1e50d5afa1c7dd9d)), closes [#​22102](https://togithub.com/aws/aws-cdk/issues/22102) - **apigateway:** CORS OPTIONS method should not require auth ([#​22402](https://togithub.com/aws/aws-cdk/issues/22402)) ([ef72089](https://togithub.com/aws/aws-cdk/commit/ef72089d7cdf5dbaa1f172eecd29ee525f650b32)), closes [#​8615](https://togithub.com/aws/aws-cdk/issues/8615) - **core:** asset bundling skipped when using --exclusively with custom stack name ([#​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 ([#​22370](https://togithub.com/aws/aws-cdk/issues/22370)) ([456a2c7](https://togithub.com/aws/aws-cdk/commit/456a2c75881fe8df3803db3787b48f8d9f97f09e)), closes [#​22022](https://togithub.com/aws/aws-cdk/issues/22022) - **cli:** state machine hotswap fails if the `DependsOn` change ([#​22396](https://togithub.com/aws/aws-cdk/issues/22396)) ([0d44db2](https://togithub.com/aws/aws-cdk/commit/0d44db2c211204b85002342ce758aca0552e851c)) - **core:** Custom Resource type length validation ([#​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 ([#​22362](https://togithub.com/aws/aws-cdk/issues/22362)) ([cdedf60](https://togithub.com/aws/aws-cdk/commit/cdedf606277f50a2f7e20b09560f6e14b11bbc19)) - **ec2:** cannot deploy SecurityGroup with allowAllIpv6Outbound ([#​22414](https://togithub.com/aws/aws-cdk/issues/22414)) ([bb16d97](https://togithub.com/aws/aws-cdk/commit/bb16d9729daea2702b32df81fc8259b0afd652fa)), closes [#​22407](https://togithub.com/aws/aws-cdk/issues/22407) - **ecs:** removed explicit addition of ecs deployment type when circuit breaker is enabled ([#​22328](https://togithub.com/aws/aws-cdk/issues/22328)) ([635129c](https://togithub.com/aws/aws-cdk/commit/635129ca95313afef7b3d8fc62d077afbfd0c088)), closes [#​16126](https://togithub.com/aws/aws-cdk/issues/16126) [#​16919](https://togithub.com/aws/aws-cdk/issues/16919) - half-written asset zips can be uploaded if process is interrupted ([#​22393](https://togithub.com/aws/aws-cdk/issues/22393)) ([2ed006e](https://togithub.com/aws/aws-cdk/commit/2ed006e50b15dfca96395d442ccee648abdbb374)), closes [#​18459](https://togithub.com/aws/aws-cdk/issues/18459) ##### Reverts - "fix(ecs): removed explicit addition of ecs deployment type when circuit breaker is enabled ([#​22328](https://togithub.com/aws/aws-cdk/issues/22328))" ([#​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 ([#​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 ([#​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 ([#​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 ([#​22378](https://togithub.com/aws/aws-cdk/issues/22378)) ([511eb79](https://togithub.com/aws/aws-cdk/commit/511eb79cba734bcd9e013d5dfbf262c75a522f09)), closes [#​18900](https://togithub.com/aws/aws-cdk/issues/18900) - **aws-lambda-python:** export poetry dependencies without hashes ([#​22351](https://togithub.com/aws/aws-cdk/issues/22351)) ([76482f6](https://togithub.com/aws/aws-cdk/commit/76482f6847a46806c1a309d2f9335a3d6e838fc6)), closes [#​14201](https://togithub.com/aws/aws-cdk/issues/14201) [#​19232](https://togithub.com/aws/aws-cdk/issues/19232) - **lambda-python:** commands run non-sequentially on Graviton when building container image ([#​22398](https://togithub.com/aws/aws-cdk/issues/22398)) ([e427fd6](https://togithub.com/aws/aws-cdk/commit/e427fd6f4a186784e345b8f88424d74c004f1e5a)), closes [#​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).
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 ([#​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 ([#​22312](https://togithub.com/aws/aws-cdk/issues/22312)) ([9297bd0](https://togithub.com/aws/aws-cdk/commit/9297bd04884ebd05888fd14121256329dac82b43)) - **cfnspec:** cloudformation spec v92.0.0 ([#​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 ([#​22349](https://togithub.com/aws/aws-cdk/issues/22349)) ([239215f](https://togithub.com/aws/aws-cdk/commit/239215fb8ceb4df5cd67669ad5daca39fb65543f)), closes [#​2756](https://togithub.com/aws/aws-cdk/issues/2756) - **ec2:** adds persist option to user data on windows instances ([#​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 ([#​22375](https://togithub.com/aws/aws-cdk/issues/22375)) ([ba201cf](https://togithub.com/aws/aws-cdk/commit/ba201cf1d9768f9ac5d3328ec425bf566f088a16)), closes [#​18740](https://togithub.com/aws/aws-cdk/issues/18740) - **sqs:** add enforceSSL property to enforce encryption of data in transit ([#​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 ([#​22368](https://togithub.com/aws/aws-cdk/issues/22368)) ([83c4123](https://togithub.com/aws/aws-cdk/commit/83c4123273fda2a2e349b55f1e50d5afa1c7dd9d)), closes [#​22102](https://togithub.com/aws/aws-cdk/issues/22102) - **apigateway:** CORS OPTIONS method should not require auth ([#​22402](https://togithub.com/aws/aws-cdk/issues/22402)) ([ef72089](https://togithub.com/aws/aws-cdk/commit/ef72089d7cdf5dbaa1f172eecd29ee525f650b32)), closes [#​8615](https://togithub.com/aws/aws-cdk/issues/8615) - **core:** asset bundling skipped when using --exclusively with custom stack name ([#​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 ([#​22370](https://togithub.com/aws/aws-cdk/issues/22370)) ([456a2c7](https://togithub.com/aws/aws-cdk/commit/456a2c75881fe8df3803db3787b48f8d9f97f09e)), closes [#​22022](https://togithub.com/aws/aws-cdk/issues/22022) - **cli:** state machine hotswap fails if the `DependsOn` change ([#​22396](https://togithub.com/aws/aws-cdk/issues/22396)) ([0d44db2](https://togithub.com/aws/aws-cdk/commit/0d44db2c211204b85002342ce758aca0552e851c)) - **core:** Custom Resource type length validation ([#​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 ([#​22362](https://togithub.com/aws/aws-cdk/issues/22362)) ([cdedf60](https://togithub.com/aws/aws-cdk/commit/cdedf606277f50a2f7e20b09560f6e14b11bbc19)) - **ec2:** cannot deploy SecurityGroup with allowAllIpv6Outbound ([#​22414](https://togithub.com/aws/aws-cdk/issues/22414)) ([bb16d97](https://togithub.com/aws/aws-cdk/commit/bb16d9729daea2702b32df81fc8259b0afd652fa)), closes [#​22407](https://togithub.com/aws/aws-cdk/issues/22407) - **ecs:** removed explicit addition of ecs deployment type when circuit breaker is enabled ([#​22328](https://togithub.com/aws/aws-cdk/issues/22328)) ([635129c](https://togithub.com/aws/aws-cdk/commit/635129ca95313afef7b3d8fc62d077afbfd0c088)), closes [#​16126](https://togithub.com/aws/aws-cdk/issues/16126) [#​16919](https://togithub.com/aws/aws-cdk/issues/16919) - half-written asset zips can be uploaded if process is interrupted ([#​22393](https://togithub.com/aws/aws-cdk/issues/22393)) ([2ed006e](https://togithub.com/aws/aws-cdk/commit/2ed006e50b15dfca96395d442ccee648abdbb374)), closes [#​18459](https://togithub.com/aws/aws-cdk/issues/18459) ##### Reverts - "fix(ecs): removed explicit addition of ecs deployment type when circuit breaker is enabled ([#​22328](https://togithub.com/aws/aws-cdk/issues/22328))" ([#​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 ([#​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 ([#​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 ([#​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 ([#​22378](https://togithub.com/aws/aws-cdk/issues/22378)) ([511eb79](https://togithub.com/aws/aws-cdk/commit/511eb79cba734bcd9e013d5dfbf262c75a522f09)), closes [#​18900](https://togithub.com/aws/aws-cdk/issues/18900) - **aws-lambda-python:** export poetry dependencies without hashes ([#​22351](https://togithub.com/aws/aws-cdk/issues/22351)) ([76482f6](https://togithub.com/aws/aws-cdk/commit/76482f6847a46806c1a309d2f9335a3d6e838fc6)), closes [#​14201](https://togithub.com/aws/aws-cdk/issues/14201) [#​19232](https://togithub.com/aws/aws-cdk/issues/19232) - **lambda-python:** commands run non-sequentially on Graviton when building container image ([#​22398](https://togithub.com/aws/aws-cdk/issues/22398)) ([e427fd6](https://togithub.com/aws/aws-cdk/commit/e427fd6f4a186784e345b8f88424d74c004f1e5a)), closes [#​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).
…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*
|
…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*
@madobrien did the association PR with the |
When adding the circuitBreaker configuration to an ECS service, it automatically sets the
DeploymentController
toECS
in the resulting Cloudformation stack. If thedeploymentController
was not specified within the CDK previously, the default value ofECS
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:
Adding the circuitBreaker config:
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 ofECS
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
Other
This is 🐛 Bug Report
The text was updated successfully, but these errors were encountered: